mirror of
https://github.com/sparkle-project/Sparkle.git
synced 2025-11-01 15:34:38 +00:00
8563a40cd2e98f48f24e2f622db47fbf7c96a367
We now use XPC for communication between Sparkle.framework and Autoupdate. Autoupdate is now ran as a launchd agaent/daemon. (Most of the time, it acts as an agent). Using XPC can only be done from non-sandboxed processes, so a connection and status service had to be created. Currently, the GUI progress tool doesn't work properly, but everything else should be behaving like before.
Sparkle

An easy-to-use software update framework for Cocoa developers.
Changes since 1.5b
- Up-to-date with 10.11 SDK and Xcode 7. Supports macOS 10.7+.
- Cleaned up and modernized code, using ARC and Autolayout.
- Merged bugfixes, security fixes and some features from multiple Sparkle forks.
- Truly automatic background updates (no UI at all) when user agreed to "Automatically download and install updates in the future."
- Ability to mark updates as critical.
- Progress and status notifications for the host app.
- Name of finish_installation.app can be configured to match your app's name.
- Upgraded and more reliable binary delta and code signing verification.
Features
- True self-updating—the user can choose to automatically download and install all updates.
- Displays a detailed progress window to the user.
- Supports authentication for installing in secure locations.
- Supports Apple Code Signing and DSA signatures for ultra-secure updates.
- Easy to install. Sparkle requires no code in your app, so it's trivial to upgrade or remove the framework.
- Uses appcasts for release information. Appcasts are supported by 3rd party update-tracking programs and websites.
- Displays release notes to the user via WebKit.
- Sparkle doesn't bug the user until second launch for better first impressions.
- Seamless integration—there's no mention of Sparkle; your icons and app name are used.
- Deep delegate support to make Sparkle work exactly as you need.
- Optionally sends system information to the server when checking for updates.
- Supports bundles, preference panes, plugins, and other non-.app software. Can install .pkg files for more complicated products.
- Supports branches due to minimum OS version requirements.
Requirements
- Runtime: macOS 10.7 or greater
- Build: Xcode 5 and 10.8 SDK or greater
- HTTPS server for serving updates (see App Transport Security)
API
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).
Building the distribution package
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.
Project Sponsor
Languages
Objective-C
72.1%
Swift
25.7%
Shell
1.8%
Ruby
0.2%
Makefile
0.1%
Other
0.1%