#btbrowser-Sparkle fork
reinstalled the 'don't show alert' support that was removed some time ago
the 'main branch' is patched
not browser
Secure and reliable software update framework for Cocoa developers.
This branch is the production ready, battle-tested version of Sparkle used by thousands of Mac apps.
The upcoming Sparkle 2 (currently in beta) can be found in the 2.x branch.
- Seamless. There's no mention of Sparkle; your icons and app name are used.
- Secure. Updates are verified using EdDSA signatures and Apple Code Signing.
- Fast. Supports delta updates which only patch files that have changed.
- Easy to install. Sparkle requires no code in your app, and only needs static files on a web server.
- Supports bundles, preference panes, plugins, and other non-.app software. Can install .pkg files for more complicated products.
- Handles permissions, quarantine and automatically asks for authentication if needed.
- Uses RSS-based appcasts for release information. Appcasts are a de-facto standard supported by 3rd party update-tracking programs and websites.
- Sparkle stays hidden until second launch for better first impressions.
- Truly self-updating — the user can choose to automatically download and install all updates in the background.
- Compatibility with macOS Sierra (and all newer versions).
- Up-to-date with 10.14 SDK and Xcode 10 (supports macOS 10.7+).
- Important security fixes and more secure signature algorithm.
- Cleaned up and modernized code, using ARC and Autolayout.
- Truly automatic background updates (no UI at all) when user agreed to "Automatically download and install updates in the future."
- Upgraded and more reliable binary delta and code signing verification.
- Ability to mark updates as critical.
- Progress and status notifications for the host app.
- Runtime: macOS 10.9 or greater
- Build: Latest major Xcode (stable or beta, whichever is latest) and one major version less; at least Xcode 12 if using Swift Package Manager.
- HTTPS server for serving updates (see App Transport Security)
- No sandboxing. Sparkle 1.x can't update sandboxed apps. However, Sparkle 2.x can.
See getting started guide. No code is necessary, but a bit of Xcode configuration is required.
-
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.
-
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). -
Delete your app's preferences (in
~/Library/Preferences/<your bundle id>
) if you've set another feed URL programmatically via Sparkle's Objective-C interface.
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).
cd
to the root of the Sparkle source tree and run make release
. Sparkle-VERSION.tar.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.