A software update framework for macOS
Secure and reliable software update framework for Cocoa developers.
This is the upcoming new version of Sparkle. Major new features are support for sandboxing, custom user interfaces, updating external bundles, and a more modern secure architecture which includes faster and more reliable installs.
For the production ready version of Sparkle, please see the Sparkle 1.x (master) branch. Note development has shifted to Sparkle 2 and the 1.x branch is now only accepting bug fixes, localization updates, and adoption of critical upcoming OS features.
Sparkle 2 is currently in beta. Applications, typically sandboxed, have already been using it in production, but some work including testing is still required before an official version can be released. Pre-releases can be found on the Sparkle's Releases. More nightly builds can be downloaded by selecting a recent workflow run and downloading the corresponding Sparkle-distribution artifact.
The current status of Sparkle 2 is tracked by its roadmap.
If you can help with testing or reviewing over the new changes, please report issues or submit pull requests!
Please visit Sparkle's website for up to date documentation on using and migrating over to Sparkle 2. Refer to Changelog for a more detailed list of changes. More internal design documents can be found in Documentation.
See getting started guide. No code is necessary, but a bit of Xcode configuration is required.
This repository uses git submodules, and will not build unless you clone recursively. Also, GitHub-provided ZIP/tar archives are broken due to GitHub not supporting git submodules properly.
git clone https://github.com/sparkle-project/Sparkle git submodule update --init --recursive
Please check Console.app. Sparkle prints detailed information there about all problems it encounters. It often also suggests solutions to the problems, so please read Sparkle's log messages carefully.
generate_appcasttool which creates appcast files, correct signatures, and delta updates automatically.
Sparkle is built with
-fvisibility=hidden -fvisibility-inlines-hiddenwhich means no symbols are exported by default. If you are adding a symbol to the public API you must decorate the declaration with the
SU_EXPORTmacro (grep the source code for examples).
cdto the root of the Sparkle source tree and run
make release. Sparkle-VERSION.tar.xz (or .bz2) will be created in a temporary directory and revealed in Finder after the build has completed.
Alternatively, build the Distribution scheme in the Xcode UI.
We pledge to have an open and welcoming environment. See our Code of Conduct.