A software update framework for macOS
Objective-C Swift Shell Other
Latest commit f9dfa3d Jan 18, 2017 @pornel pornel committed on GitHub Merge pull request #1006 from sparkle-project/subsystem
Use app-independent subsystem identifier
Permalink
Failed to load latest commit information.
Configurations Copy debug symbols for generate_appcast Jan 7, 2017
Documentation Replace OS X with macOS or more generic terminology. Jun 15, 2016
Resources Rename Sparkle.icns to be consistent with ASSETCATALOG_COMPILER_APPIC… Nov 9, 2016
Sparkle.xcodeproj Suppress partial availability warning on line level Jan 17, 2017
Sparkle Merge pull request #1006 from sparkle-project/subsystem Jan 18, 2017
TestApplication Null warning Jan 3, 2017
Tests Adds test cases for "sparkle:criticalUpdate" tag. (#999) Jan 16, 2017
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 Make sign_update work when Bash is not the default Aug 9, 2016
fileop Add AppKitPrevention header to reduce redundancy. Jan 17, 2017
generate_appcast Proper fix for #995 Jan 13, 2017
.clang-format Comment problematic clang-format property. Jun 6, 2015
.gitignore Add Carthage/Build to .gitignore Jul 22, 2016
.travis.yml Add 10.12 as SDK to run in Makefile and use Xcode 8.2 for Travis Jan 10, 2017
CHANGELOG 1.16.0a2 Jan 4, 2017
CODE_OF_CONDUCT.md CoC Sep 2, 2016
LICENSE Change bsdiff's suffix sort algorithm to sais. Fixes #132 Apr 5, 2015
Makefile Add 10.12 as SDK to run in Makefile and use Xcode 8.2 for Travis Jan 10, 2017
Makefile-icon Rename Sparkle.icns to be consistent with ASSETCATALOG_COMPILER_APPIC… Nov 9, 2016
README.markdown No server-side logic is a plus Jan 5, 2017
Sparkle.podspec Update pod spec file so that `make release` works Dec 29, 2016

README.markdown

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

Features

  • Seamless. There's no mention of Sparkle; your icons and app name are used.
  • Secure. Updates are verified using DSA 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.

Changes since 1.5b

  • Compatibilty with macOS Sierra.
  • Up-to-date with 10.12 SDK and Xcode 8 (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."
  • Upgraded and more reliable binary delta and code signing verification.
  • Ability to mark updates as critical.
  • Progress and status notifications for the host app.

Requirements

  • Runtime: macOS 10.7 or greater
  • Build: Xcode 7 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