github.com/sparkle-project/sparkle

A software update framework for macOS


Keywords
framework, macos, software-update, update
License
Other

Documentation

Sparkle Build Status Carthage compatible CocoaPods sponsored by: StackPath

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

Sparkle shows familiar update window with release notes

Changes since 1.5b

  • Up-to-date with 10.11 SDK and Xcode 7. Supports macOS 10.7+.
  • Important security fixes.
  • 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."
  • 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

  • Seamless integration—there's no mention of Sparkle; your icons and app name are used.
  • 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 RSS-based 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.
  • 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.

Code of Conduct

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

Project Sponsor

StackPath