Secure and reliable software update framework for macOS.
Sparkle 2 adds support for application sandboxing, custom user interfaces, updating external bundles, and a more modern architecture which includes faster and more reliable installs.
Pre-releases when available can be found on the Sparkle's Releases or on your favorite package manager. More nightly builds can be downloaded by selecting a recent workflow run and downloading the corresponding Sparkle-distribution artifact.
The current status for future versions of Sparkle is tracked by its roadmap.
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 to the project can be found in the repository under Documentation.
See getting started guide. No code is necessary, but a bit of configuration is required.
Please check Console.app for logs under your application. 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.
Use the generate_appcast
tool which creates appcast files, correct signatures, and delta updates automatically.
Make sure the URL specified in SUFeedURL
is valid (typos/404s are a common error!), and that it uses modern TLS (test it).
Sparkle is built with -fvisibility=hidden -fvisibility-inlines-hidden
which 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_EXPORT
macro (grep the source code for examples).
You do not usually need to build a Sparkle distribution unless you're making changes to Sparkle itself.
To build a Sparkle distribution, cd
to the root of the Sparkle source tree and run make release
. Sparkle-VERSION.tar.xz will be created 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.