Releases: sparkle-project/Sparkle
Sparkle 2.0.0-beta.4
To simplify integration of Sparkle in sandboxed applications, Beta 4 has now moved the XPC Services inside of Sparkle's framework. This is a major change in how XPC Services were integrated from previous versions of Sparkle. Please read Sparkle's updated guide on sandboxing on how to adapt to these changes and test updating in your application.
Changes from Beta 3:
- Move XPC Services inside the framework (Zorg) (#1965)
- Fix to prevent Sparkle manipulating the host app's high level WebView defaults, which only affects applications using the downloader XPC Service (Daniel Jalkut) (#1936)
- Use px instead of pt when specifying font size to fix the default font size appearing larger than expected in release notes (Daniel Jalkut) (#1962)
- Make canCheckForUpdates property KVO compliant/observable, making menu item validation usable from SwiftUI applications (Zorg) (#1968)
- Fix order of inserting new appcast items in generate_appcast (Zorg) (#1982)
- Set CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO for release (Zorg) (#1973)
- Updates Version History French string translation (Micah Moore) (#1975)
- Update localizations for English, German, Dutch (Eitot) (#1978, #1977, #1976)
Changes:
- Support for Sandboxed Applications (Zorg)
- Support for writing custom user interfaces (Zorg)
- Support for updating external Sparkle-based bundles (Zorg)
- Added command line utility to update Sparkle-based bundles (Zorg)
- More modern architecture
- Moves extraction, validation, and installation into a submitted launchd agent/daemon with XPC communication (Zorg)
- Features faster installs with shorter update/relaunch times (#1802) (Zorg)
- Provides more robust installs that need to request user authorization (Zorg)
- Adoption of atomic-safe bundle replacing updates leveraging APFS (#1801) (Zorg)
- API Changes
- Introduced new SPUStandardUpdaterController, SPUUpdater, SPUUserDriver classes/protocols (Zorg)
- Decoupled AppKit and UI logic in the framework from core functionality (Zorg)
- Ensure (most) API / ABI compatibility with Sparkle 1.x; you can likely test Sparkle 2 in an existing app without any changes (Zorg)
- Deprecated SUUpdater, albeit it is still functional for testing and transitional purposes (Zorg)
-bestValidUpdateInAppcast:forUpdater:
delegate method behavior has been refined and discouraged for some cases. Please review its updated header documentation inSPUUpdaterDelegate.h
if you use this method. (#1838, #1862, #1879, #1880) (Zorg)- Delegation methods may have been removed or added to the newer updater API. Please review
SPUUpdaterDelegate
if usingSPUUpdater
. (Zorg)
- Updater Changes
- Automatic silent and manual update alert prompts are now merged together (Zorg)
- Updates will attempt to install even if the user quits the application without relaunching the application update explicitly (Zorg)
- Updates can be downloaded in the background automatically but later prompt the user to install them, particularly if Sparkle doesn't have sufficient permission to install them without the user's permission (Zorg)
- Authorization now occurs before launching the installer and before terminating the application, which can be canceled by the user cleanly (Zorg)
- Sparkle uses the icon of the bundle to update for its authorization dialog. A 32x32 image representation of the icon is needed. (Zorg)
- Sudden termination for silent automatic updates isn't disabled anymore (Zorg)
- Policy Changes
- Distributing updates without EdDSA signing the archives is now deprecated (Zorg)
- Package based updates that are zipped or archived must add sparkle:installationType="package" to the appcast item enclosure (Zorg)
- We now recommend using sparkle:version and sparkle:shortVersionString top level elements instead of enclosure attributes (#1878) (Zorg)
- The link element in an appcast item is now used for directing users to the product's website if they don't meet minimum system requirements (#1877) (Zorg)
- Major/Paid Upgrades Enhancements
- Informational only and critical updates can be specified selectively by app version (#1862)
- Expose why a new update is unavailable and direct user to prior release notes or website info (#1877, #1886) (Zorg)
- Add support for posting updates only on specific channels (#1879) (Zorg)
- System profiler privacy and transparency (#1690) (Martin Pilkington)
- Support getting app icon from asset catalog (#1694) (Charles Srstka)
- Don't hide update alert window now on deactivation (#1804) (Zorg)
- Don't bring up authorization just because group ID doesn't match (#1830) (Zorg)
- Raise minimum system version to 10.11 (Zorg)
- Special thanks to developers using early builds of this release in production and contributors for keeping this running (Kornel, Jonas Zaugg, Gwynne Raskind, Jordan Rose, Tony Arnold, Bryan Jones, Christian Tietze, Jakob Egger, and many more)
Please visit Sparkle's website for more information on documentation and migration.
If you are migrating from earlier alpha versions of Sparkle 2, please re-familiarize yourself with the Sandboxing guide. Some of the XPC Services are now optional and integration with code signing has been simplified. The SPUUserDriver protocol for custom user interfaces has been greatly simplified too.
Sparkle 2.0.0-beta.3
Changes from Beta 2:
- Fix not being able to show resumed update in utmost focus (#1948)
- Fix issues with standard updater controller initialization and setting delegates from nibs (#1958)
- Update documentation / API headers (#1956)
Changes:
- Support for Sandboxed Applications (Zorg)
- Support for writing custom user interfaces (Zorg)
- Support for updating external Sparkle-based bundles (Zorg)
- Added command line utility to update Sparkle-based bundles (Zorg)
- More modern architecture
- Moves extraction, validation, and installation into a submitted launchd agent/daemon with XPC communication (Zorg)
- Features faster installs with shorter update/relaunch times (#1802) (Zorg)
- Provides more robust installs that need to request user authorization (Zorg)
- Adoption of atomic-safe bundle replacing updates leveraging APFS (#1801) (Zorg)
- API Changes
- Introduced new SPUStandardUpdaterController, SPUUpdater, SPUUserDriver classes/protocols (Zorg)
- Decoupled AppKit and UI logic in the framework from core functionality (Zorg)
- Ensure (most) API / ABI compatibility with Sparkle 1.x; you can likely test Sparkle 2 in an existing app without any changes (Zorg)
- Deprecated SUUpdater, albeit it is still functional for testing and transitional purposes (Zorg)
-bestValidUpdateInAppcast:forUpdater:
delegate method behavior has been refined and discouraged for some cases. Please review its updated header documentation inSPUUpdaterDelegate.h
if you use this method. (#1838, #1862, #1879, #1880) (Zorg)- Delegation methods may have been removed or added to the newer updater API. Please review
SPUUpdaterDelegate
if usingSPUUpdater
. (Zorg)
- Updater Changes
- Automatic silent and manual update alert prompts are now merged together (Zorg)
- Updates will attempt to install even if the user quits the application without relaunching the application update explicitly (Zorg)
- Updates can be downloaded in the background automatically but later prompt the user to install them, particularly if Sparkle doesn't have sufficient permission to install them without the user's permission (Zorg)
- Authorization now occurs before launching the installer and before terminating the application, which can be canceled by the user cleanly (Zorg)
- Sparkle uses the icon of the bundle to update for its authorization dialog. A 32x32 image representation of the icon is needed. (Zorg)
- Sudden termination for silent automatic updates isn't disabled anymore (Zorg)
- Policy Changes
- Distributing updates without EdDSA signing the archives is now deprecated (Zorg)
- Package based updates that are zipped or archived must add sparkle:installationType="package" to the appcast item enclosure (Zorg)
- We now recommend using sparkle:version and sparkle:shortVersionString top level elements instead of enclosure attributes (#1878) (Zorg)
- The link element in an appcast item is now used for directing users to the product's website if they don't meet minimum system requirements (#1877) (Zorg)
- Major/Paid Upgrades Enhancements
- Informational only and critical updates can be specified selectively by app version (#1862)
- Expose why a new update is unavailable and direct user to prior release notes or website info (#1877, #1886) (Zorg)
- Add support for posting updates only on specific channels (#1879) (Zorg)
- System profiler privacy and transparency (#1690) (Martin Pilkington)
- Support getting app icon from asset catalog (#1694) (Charles Srstka)
- Don't hide update alert window now on deactivation (#1804) (Zorg)
- Don't bring up authorization just because group ID doesn't match (#1830) (Zorg)
- Raise minimum system version to 10.11 (Zorg)
- Special thanks to developers using early builds of this release in production and contributors for keeping this running (Kornel, Jonas Zaugg, Gwynne Raskind, Jordan Rose, Tony Arnold, Bryan Jones, Christian Tietze, Jakob Egger, and many more)
Please visit Sparkle's website for more information on documentation and migration.
If you are migrating from earlier alpha versions of Sparkle 2, please re-familiarize yourself with the Sandboxing guide. Some of the XPC Services are now optional and integration with code signing has been simplified. The SPUUserDriver protocol for custom user interfaces has been greatly simplified too.
Sparkle 1.27.0
- Deprecate not using EdDSA and skip DSA verification when possible in #1892 (Zorg)
- Pass http headers and user agent when downloading release notes from #1873 (Zorg)
- Fix project warnings from #1893 (Zorg)
- Update sample appcast from #1895 (Zorg)
- Fix appcast pubDate tag generation in different locales from #1898 (Sungbin Jo)
- Create valid xar archives for generating binary delta files from #1906 (Zorg)
- Fix a few issues with German localization from #1931 (J-rg)
- Fix issues with Russian localizations from #1947 (Konstantin Zamyakin)
- Fix issues with Czech localizations from #1943 (Vojtěch Koňařík)
- Add an automated workflow that builds and publishes official Sparkle releases (Tony Arnold, Zorg)
Please visit Sparkle's setup guide if you are currently not using EdDSA and need to migrate.
Sparkle 2.0.0-beta.2
Changes from Beta 1:
- Fix check to only validate XPC display versions in Debug (#1939)
- Remove installer interaction delegate API and add finishing update cycle API (#1925)
- Add more API reference documentation and published the Sparkle 2 API Reference
This pre-release is available on Swift Package Manager and now CocoaPods for version '2.0.0-beta.2'
Overall changes:
- Support for Sandboxed Applications (Zorg)
- Support for writing custom user interfaces (Zorg)
- Support for updating external Sparkle-based bundles (Zorg)
- Added command line utility to update Sparkle-based bundles (Zorg)
- More modern architecture
- Moves extraction, validation, and installation into a submitted launchd agent/daemon with XPC communication (Zorg)
- Features faster installs with shorter update/relaunch times (#1802) (Zorg)
- Provides more robust installs that need to request user authorization (Zorg)
- Adoption of atomic-safe bundle replacing updates leveraging APFS (#1801) (Zorg)
- API Changes
- Introduced new SPUStandardUpdaterController, SPUUpdater, SPUUserDriver classes/protocols (Zorg)
- Decoupled AppKit and UI logic in the framework from core functionality (Zorg)
- Ensure (most) API / ABI compatibility with Sparkle 1.x; you can likely test Sparkle 2 in an existing app without any changes (Zorg)
- Deprecated SUUpdater, albeit it is still functional for testing and transitional purposes (Zorg)
-bestValidUpdateInAppcast:forUpdater:
delegate method behavior has been refined and discouraged for some cases. Please review its updated header documentation inSPUUpdaterDelegate.h
if you use this method. (#1838, #1862, #1879, #1880) (Zorg)- Delegation methods may have been removed or added to the newer updater API. Please review
SPUUpdaterDelegate
if usingSPUUpdater
. (Zorg)
- Updater Changes
- Automatic silent and manual update alert prompts are now merged together (Zorg)
- Updates will attempt to install even if the user quits the application without relaunching the application update explicitly (Zorg)
- Updates can be downloaded in the background automatically but later prompt the user to install them, particularly if Sparkle doesn't have sufficient permission to install them without the user's permission (Zorg)
- Authorization now occurs before launching the installer and before terminating the application, which can be canceled by the user cleanly (Zorg)
- Sparkle uses the icon of the bundle to update for its authorization dialog. A 32x32 image representation of the icon is needed. (Zorg)
- Sudden termination for silent automatic updates isn't disabled anymore (Zorg)
- Policy Changes
- Distributing updates without EdDSA signing the archives is now deprecated (Zorg)
- Package based updates that are zipped or archived must add sparkle:installationType="package" to the appcast item enclosure (Zorg)
- We now recommend using sparkle:version and sparkle:shortVersionString top level elements instead of enclosure attributes (#1878) (Zorg)
- The link element in an appcast item is now used for directing users to the product's website if they don't meet minimum system requirements (#1877) (Zorg)
- Major/Paid Upgrades Enhancements
- Informational only and critical updates can be specified selectively by app version (#1862)
- Expose why a new update is unavailable and direct user to prior release notes or website info (#1877, #1886) (Zorg)
- Add support for posting updates only on specific channels (#1879) (Zorg)
- System profiler privacy and transparency (#1690) (Martin Pilkington)
- Support getting app icon from asset catalog (#1694) (Charles Srstka)
- Don't hide update alert window now on deactivation (#1804) (Zorg)
- Don't bring up authorization just because group ID doesn't match (#1830) (Zorg)
- Raise minimum system version to 10.11 (Zorg)
- Special thanks to developers using early builds of this release in production and contributors for keeping this running (Kornel, Jonas Zaugg, Gwynne Raskind, Jordan Rose, Tony Arnold, Bryan Jones, Christian Tietze, Jakob Egger, and many more)
Please visit Sparkle's website for more information on documentation and migration.
If you are migrating from earlier alpha versions of Sparkle 2, please re-familiarize yourself with the Sandboxing guide. Some of the XPC Services are now optional and integration with code signing has been simplified. The SPUUserDriver protocol for custom user interfaces has been greatly simplified too.
Sparkle 1.27.0-rc.1
- Deprecate not using EdDSA and skip DSA verification when possible in #1892 (Zorg)
- Pass http headers and user agent when downloading release notes from #1873 (Zorg)
- Fix project warnings from #1893 (Zorg)
- Update sample appcast from #1895 (Zorg)
- Fix appcast pubDate tag generation in different locales from #1898 (Sungbin Jo)
- Create valid xar archives for generating binary delta files from #1906 (Zorg)
- Fix a few issues with German localization from #1931 (J-rg)
- Add an automated workflow that builds and publishes official Sparkle releases (Tony Arnold, Zorg)
Please visit Sparkle's setup guide if you are currently using DSA and need to migrate to EdDSA.
This pre-release is available on Swift Package Manager and CocoaPods.
2.0.0-beta.1
This is the first official beta and prerelease of Sparkle 2, which is an upcoming major upgrade.
Changes:
- Support for Sandboxed Applications (Zorg)
- Support for writing custom user interfaces (Zorg)
- Support for updating external Sparkle-based bundles (Zorg)
- Added command line utility to update Sparkle-based bundles (Zorg)
- More modern architecture
- Moves extraction, validation, and installation into a submitted launchd agent/daemon with XPC communication (Zorg)
- Features faster installs with shorter update/relaunch times (#1802) (Zorg)
- Provides more robust installs that need to request user authorization (Zorg)
- Adoption of atomic-safe bundle replacing updates leveraging APFS (#1801) (Zorg)
- API Changes
- Introduced new SPUStandardUpdaterController, SPUUpdater, SPUUserDriver classes/protocols (Zorg)
- Decoupled AppKit and UI logic in the framework from core functionality (Zorg)
- Ensure (most) API / ABI compatibility with Sparkle 1.x; you can likely test Sparkle 2 in an existing app without any changes (Zorg)
- Deprecated SUUpdater, albeit it is still functional for testing and transitional purposes (Zorg)
-bestValidUpdateInAppcast:forUpdater:
delegate method behavior has been refined and discouraged for some cases. Please review its updated header documentation inSPUUpdaterDelegate.h
if you use this method. (#1838, #1862, #1879, #1880) (Zorg)- Delegation methods may have been removed or added to the newer updater API. Please review
SPUUpdaterDelegate
if usingSPUUpdater
. (Zorg)
- Updater Changes
- Automatic silent and manual update alert prompts are now merged together (Zorg)
- Updates will attempt to install even if the user quits the application without relaunching the application update explicitly (Zorg)
- Updates can be downloaded in the background automatically but later prompt the user to install them, particularly if Sparkle doesn't have sufficient permission to install them without the user's permission (Zorg)
- Authorization now occurs before launching the installer and before terminating the application, which can be canceled by the user cleanly (Zorg)
- Sparkle uses the icon of the bundle to update for its authorization dialog. A 32x32 image representation of the icon is needed. (Zorg)
- Sudden termination for silent automatic updates isn't disabled anymore (Zorg)
- Policy Changes
- Distributing updates without EdDSA signing the archives is now deprecated (Zorg)
- Package based updates that are zipped or archived must add sparkle:installationType="package" to the appcast item enclosure (Zorg)
- We now recommend using sparkle:version and sparkle:shortVersionString top level elements instead of enclosure attributes (#1878) (Zorg)
- The link element in an appcast item is now used for directing users to the product's website if they don't meet minimum system requirements (#1877) (Zorg)
- Major/Paid Upgrades Enhancements
- Informational only and critical updates can be specified selectively by app version (#1862)
- Expose why a new update is unavailable and direct user to prior release notes or website info (#1877, #1886) (Zorg)
- Add support for posting updates only on specific channels (#1879) (Zorg)
- System profiler privacy and transparency (#1690) (Martin Pilkington)
- Support getting app icon from asset catalog (#1694) (Charles Srstka)
- Don't hide update alert window now on deactivation (#1804) (Zorg)
- Don't bring up authorization just because group ID doesn't match (#1830) (Zorg)
- Raise minimum system version to 10.11 (Zorg)
- Special thanks to developers using early builds of this release in production and contributors for keeping this running (Kornel, Jonas Zaugg, Gwynne Raskind, Jordan Rose, Tony Arnold, Bryan Jones, Christian Tietze, Jakob Egger, and many more)
Please visit Sparkle's website for more information on documentation and migration.
If you are migrating from earlier alpha versions of Sparkle 2, please re-familiarize yourself with the Sandboxing guide. Some of the XPC Services are now optional and integration with code signing has been simplified. The SPUUserDriver protocol for custom user interfaces has been greatly simplified too.
1.26.0
- Flat package support from #1745 (Zorg)
- Correct generate_appcast -s command line argument usage help (Lance Lovette)
- Fix -f command line argument handling (Lance Lovette)
- Fix progress for guided pkg install (Zorg)
- Fix XQuartz update failing because NSLog caused issues (Zorg)
- Update localization (Vojtěch Koňařík)
- Various fixes to SPM logic (Jonas Zaugg)
macOS 10.9 or later required
If you're not generating appcasts automatically, remember to add <sparkle:minimumSystemVersion>10.9</sparkle:minimumSystemVersion>
tag to <item>
s in your appcast. Sparkle will crash on 10.8 or older.
1.26.0-a1
- Flat package support from #1745 (Zorg)
- Correct generate_appcast -s command line argument usage help (Lance Lovette)
- Fix -f command line argument handling (Lance Lovette)
- Fix progress for guided pkg install (Zorg)
- Fix XQuartz update failing because NSLog caused issues (Zorg)
- Update localization (Vojtěch Koňařík)
- Various fixes to SPM logic (Jonas Zaugg)
1.25.0
- Raise minimum system version to 10.9 (Kornel)
- Allow an appcast to prevent the new version from being installed automatically (#1688) (pierswalter)
- UI fixes
- Show check for updates button only when automatic updates are enabled (Lorena Rangel)
- Don't initialize the webview if we don't show release notes (Tobias Fonfara)
- Keep skip button available if there is a minimum autoupdate version (Zorg)
- Fix automatic updates checkbox state when not showing release notes (Zorg)
- Fix edge cases with hiding alert buttons and using "Install Later" (Zorg)
- Re-add setting WebUIDelegate fix for legacy web view (Zorg)
- Adopt WKWebView for 1.x (Zorg)
- Add auto layout constraints to SUAutomaticUpdateAlert window (Zorg)
- Made buttons wide enough to display the full text. Made window wide enough to display the widened buttons (el, fi, ru, uk) (Piers Uso Walter)
- Remove max size from update alert. (George Nachman)
- Integrate generate_keys export/import options changes from #1730 (Zorg)
- Add
—release-notes-url-prefix
support to localized release notes (Adam Tharani) - Translations
- Enable base internalization for alert xibs (Zorg)
- Capitalizes french translation of "Vous utilisez actuellement..." ("You are currently running...") (Micah Moore)
- Fix and cleanup Hebrew, Catalan, Finnish localizations (Zorg)
- Remove non-english localizations from TestApplication (Zorg)
- Fix catch-22 Swift Package Manager binary target (Jonas Zaugg)
- Add explicit dependencies to fix Xcode linking errors (Kornel)
- Add phased rollouts feature to automatic update driver too (Zorg)
- Remove hiding skip button and retitling later button (Zorg)
- Deprecate installUpdatesIfAvailable (Zorg)
macOS 10.9 or later required
If you're not generating appcasts automatically, remember to add <sparkle:minimumSystemVersion>10.9</sparkle:minimumSystemVersion>
tag to <item>
s in your appcast. Sparkle will crash on 10.8 or older.
SPM take two
Same as rc1, re-uploaded for SPM.