Replies: 1 comment
-
If you want to ship different binaries for each architecture, you need to use separate feeds. No support is going to be added for "parallel releases" in the same feed. Even for Windows vs macOS releases, sparkle:os was not carefully thought through and is not recommended. Of course the recommendation and the Apple/Mac-like way is to use universal binaries. There are some apps, likely mostly Electron/Chromium based with few exceptions, that distribute different versions of apps for different architectures and I think they are making the wrong size/simplicity tradeoff. Back when the platform was transitioning from PPC to Intel there was almost no question about it that universal binaries are the way. If you want to optimize app size there's probably a number of things you can do there including optimized code, stripping debug information, removing unused code/content, using e.g. higher level compressed dmg, supporting delta updates for smaller updates, and such. |
Beta Was this translation helpful? Give feedback.
-
Summary
Running
generate_appcast
on a folder that contains multiple architectures for the same version of a bundle for multiple architectures (e.g.my_app_v1.0.0_amd64.dmg
&my_app_v1.0.0_arm64.dmg
) results in the errorDuplicate updates are not supported.
.Right now, I'm forced to distribute universal binaries in my appcast feed, but this results in needing much larger artefacts. It would be great if Sparkle would support a combined feed where it automatically selects the correct architecture.
Possible Fix
The way that WinSparkle has solved this is really elegant in my opinion. It uses the
sparkle:os
attribute which could be eitherwindows
,windows-x86
,windows-x64
orwindows-arm64
(see https://github.com/vslavik/winsparkle/wiki/Appcast-Feeds#platform-specific-updates).We could do the same here i.e.
macos
,macos-x64
andmacos-arm64
.generate_appcast
could set these automatically based on the architecture i.e.macos
for universal binaries and the other two for their respective architectures.Version
2.7.0
Beta Was this translation helpful? Give feedback.
All reactions