-
Previously, we uploaded a pkg file to the server to download the latest version. This method takes a significant amount of time to update, so we intend to utilize the Delta update feature. For Delta update, we used generate_appcast on a folder path containing two zipped apps to create delta and xml files. Herein lies the issue; the two zip files are in .app format, whereas previously, we downloaded through a pkg file. Is there a method to proceed with Delta updates using a pkg file? If not, do we need to upload these two zip files to the server? The xml you were using before<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>12.3.1</title>
<item>
<sparkle:version>1470</sparkle:version>
<sparkle:shortVersionString>12.3.1</sparkle:shortVersionString>
<pubDate>Wed, 27 Sep 2023 09:20:35 +0900</pubDate>
<enclosure url="https://.../latest" sparkle:edSignature="" length="413356929" type="application/octet-stream" sparkle:installationType="package"/>
</item>
</channel>
</rss> xml file generated by generate_appcast<?xml version="1.0" standalone="yes"?>
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
<channel>
<title>Elixir</title>
<item>
<title>12.3.1</title>
<pubDate>Wed, 27 Sep 2023 18:42:47 +0900</pubDate>
<sparkle:version>1475</sparkle:version>
<sparkle:shortVersionString>12.3.1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>12.0</sparkle:minimumSystemVersion>
<enclosure url="1471.zip" length="414041768" type="application/octet-stream"/>
<sparkle:deltas>
<enclosure url="//1475-1470.delta" sparkle:deltaFrom="1470" length="4723918" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="1381488" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="..."/>
</sparkle:deltas>
</item>
<item>
<title>12.3.1</title>
<pubDate>Wed, 27 Sep 2023 18:40:13 +0900</pubDate>
<sparkle:version>1470</sparkle:version>
<sparkle:shortVersionString>12.3.1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>12.0</sparkle:minimumSystemVersion>
<enclosure url="1470.zip" length="414088680" type="application/octet-stream"/>
</item>
</channel>
</rss> |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Delta updates cannot be used if the new update being served is a pkg, however it looks like you are switching from pkg to regular app distribution (which is a good thing!). The new XML looks OK to me and should work, assuming the .app in 1470.zip and the 1470 one previously produced by your pkg are equivalent. In the new XML, the 1470 entry is not actually necessary; Sparkle will never pick it* since 1475 is greater and they have the same branch point (i.e same minimumSystemVersion, same channel). It doesn't hurt having it, though, and generate_appcast will later manage how many updates are kept in the feed when you start generating more updates. I assume you left out the sparkle:edSignature from your snippets as those should be there for .zip entries too. (*assuming you didn't go out of your way to add any custom logic for selectively picking updates) |
Beta Was this translation helpful? Give feedback.
That means it actually did download the delta update but rejected it upon signature verification. One of our tools includes an option to verify a signature so check that. (sign_update I think). Next I would check the delta file your app is downloading from your server is the actual delta file.