Skip to content
A software update framework for macOS
Branch: master
Clone or download
kornelski Squashed commit of the following:
commit 89a8f1a
Author: Emir Sarı <>
Date:   Thu Mar 21 20:35:02 2019 -0700

    Fixed capitalization

commit ad0582a
Author: Emir Sarı <>
Date:   Thu Mar 21 17:28:53 2019 -0700

    Fix for changed string

commit 77016c7
Author: Emir Sarı <>
Date:   Thu Mar 21 17:23:21 2019 -0700


    Improvements and layout fixes
Latest commit fc3221c Mar 22, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Documentation 2 tiny fixes Nov 20, 2018
Sparkle.xcodeproj Fix path for UITests group in project Mar 14, 2019
Sparkle Squashed commit of the following: Mar 22, 2019
Tests Ignore symlink permissions in binary deltas Oct 31, 2018
UITests Fix UITests multiple matches issue introduced in touch bar Jan 8, 2017
Vendor/bsdiff Change dmg and test verifying code by removing NTSynchronousTask Aug 27, 2016
bin/old_dsa_scripts Make legacy script use a smaller DSA key that macOS still supports Nov 13, 2018
ed25519 @ 7fa6712 ed25519 submodule Sep 15, 2018
fileop Explicitly specify types to silence "Messaging unqualified id" warnin… Jun 14, 2018
generate_appcast Use contentsOfDirectory(at:...) instead of atPath:..., and rename `ap… Jan 26, 2019
generate_keys Explain error 25308 Dec 10, 2018
sign_update Explain error 25308 Dec 10, 2018
.clang-format Comment problematic clang-format property. Jun 6, 2015
.gitignore Add Carthage/Build to .gitignore Jul 22, 2016
.gitmodules ed25519 submodule Sep 15, 2018
CHANGELOG CoC Sep 2, 2016
Makefile "all" target Mar 18, 2018
README.markdown Update README.markdown Mar 11, 2019
Sparkle.podspec Bump Feb 11, 2019


Sparkle Build Status Carthage compatible CocoaPods sponsored by: StackPath

Secure and reliable software update framework for Cocoa developers.

Sparkle shows familiar update window with release notes


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

Changes since 1.5b

  • 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.7 or greater
  • Build: Xcode 9 and 10.11 SDK or greater
  • HTTPS server for serving updates (see App Transport Security)
  • No sandboxing. Sparkle 1.x can't update sandboxed apps. Sparkle 2.0 (alpha) can.


See getting started guide. No code is necessary, but a bit of Xcode configuration is required.



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

API symbols

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.

Code of Conduct

We pledge to have an open and welcoming environment. See our Code of Conduct.

Project Sponsor


You can’t perform that action at this time.