So I have my updates directory (admittedly just dumped on my desktop for now)
$ ls updates
appcast.xml stv.1.0.zip stv.1.1.zip
I run generate_appcast
$ ~/Documents/Xcode/stv/Pods/Sparkle/bin/generate_appcast ./updates
Written /Users/user/Desktop/stv/appcast.xml based on 2 updates
But when I look inside
cat updates/appcast.xml
<?xml version="1.0" standalone="yes"?><rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
<channel>
<title>stv</title>
<item>
<title>1.0</title>
<pubDate>Mon, 19 Nov 2018 14:11:21 +1000</pubDate>
<sparkle:minimumSystemVersion>10.14</sparkle:minimumSystemVersion>
<enclosure url="https://stv.internal/osx/stv.1.0.zip" sparkle:version="1" sparkle:shortVersionString="1.0" length="21018319" type="application/octet-stream" sparkle:edSignature="VbWYnZ2z0b8KvAigrrrsmxjsZvQQQQqNmwYC8OEzTGTlkUA+Ax7P3mxI3JUF3yIliFQlFtaUQIqVy7/BoGezAQ=="/>
</item>
</channel></rss>
But the plist has the right version in it?
$ mkdir tmp
$ cd tmp
$ unzip ../stv.1.1.zip
$ grep -A1 -iE "bundle.*version" stv.app/Contents/Info.plist
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
--
<key>CFBundleShortVersionString</key>
<string>1.1</string>
--
<key>CFBundleVersion</key>
<string>1.1</string>
That sparkle:version="1" is suspicious. Does version 1.0 have the right CFBundleVersion?
No it had this.
I'll change it to 1.0 and retry.
<key>CFBundleShortVersionString</key>
<string>1.0</string>
--
<key>CFBundleVersion</key>
<string>1</string>
edit: Well.. that gave me two entries...
<?xml version="1.0" standalone="yes"?><rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
<channel>
<title>sstv</title>
<item>
<title>1.0</title>
<pubDate>Mon, 19 Nov 2018 16:01:32 +1000</pubDate>
<sparkle:minimumSystemVersion>10.14</sparkle:minimumSystemVersion>
<enclosure url="https://stv.internal/osx/stv.1.1.zip" sparkle:version="1" sparkle:shortVersionString="1.0" length="21088482" type="application/octet-stream" sparkle:edSignature="/Rg9XLYbkzylU4YWBNuQAyE4h2/Y1YwCN90TuBw3DdVtD0H4qoTAn9YAGx9drUDq8n6rUVccdGKjNim9jaf5DQ=="/>
</item>
<item>
<title>1.0</title>
<pubDate>Tue, 20 Nov 2018 09:21:00 +1000</pubDate>
<sparkle:minimumSystemVersion>10.14</sparkle:minimumSystemVersion>
<enclosure url="https://stv.internal/osx/stv.1.0.zip" sparkle:version="1" sparkle:shortVersionString="1.0" length="21019039" type="application/octet-stream" sparkle:edSignature="ps9mQGV2JLxwsO+UMXisT/Q6RREej/Gy7BXdswlMzopuEa+zgIIyZy/HOCdNpOPAyQffTfyqUiyk5UGOBMA9Bg=="/>
</item>
</channel></rss>
Which do have two different signatures, and even have two different files specified but they're both listed as version 1.0
Here are the plists, for reference.
Try deleting ~/Library/Caches/Sparkle_generate_appcast/. There may be a cache of an older version of the archive that had wrong plist.
I had exact the same Problem. Deleting Cache solved it. Added
rm -r ~/Library/Caches/Sparkle_generate_appcast/*
to my Updatescript now.
Most helpful comment
Try deleting
~/Library/Caches/Sparkle_generate_appcast/. There may be a cache of an older version of the archive that had wrong plist.