A software update framework for the Mac
C Objective-C Shell Ruby Makefile
Pull request Compare This branch is 680 commits behind sparkle-project:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Documentation Warn if Doxygen is not installed, when building documentation. Jul 1, 2014
Resources Add screenshot to README showing Sparkle in action. Sep 7, 2014
Sparkle.xcodeproj Have Sparkle build a framework module. Jan 20, 2015
.clang-format Change brace style to Linux Jul 1, 2014
CHANGELOG Updated changelog Jan 15, 2015
Makefile Share the distribution scheme and configure it to run tests. Aug 28, 2014
README.markdown Add screenshot to README showing Sparkle in action. Sep 7, 2014
Sparkle.podspec Update podspec for 1.9.0 Jan 27, 2015


Sparkle Build Status

An easy-to-use software update framework for Cocoa developers.


Changes since 1.5b

  • Up-to-date with 10.10 SDK and Xcode 6. Supports OS X 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.


  • 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.


Building Sparkle requires Xcode 5 or above.


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.