gitmyhub

Sparkle

Objective-C ★ 9.2k updated 1d ago

A software update framework for macOS

A framework Mac developers add to their apps to give users automatic software updates with a familiar dialog, digital signature verification, and optional silent background installs.

Objective-CXcodemacOSsetup: moderatecomplexity 2/5

Sparkle is a framework that Mac app developers can add to their applications to give users automatic software updates. Once a developer integrates Sparkle, their app can check a web feed for new versions, download them, verify they are authentic, and install them, all with minimal setup required on the developer's part.

From the user's perspective, Sparkle shows a familiar update dialog using the app's own name and icon, with no mention of Sparkle itself. Users can choose to have updates download and install silently in the background, or they can review release notes and install manually. Developers can mark specific updates as critical so users are prompted more urgently.

On the security side, updates are verified using digital signatures and Apple's own code signing system before installation. The framework also supports delta updates, which means only the files that actually changed between versions are downloaded rather than the entire app. This makes updates faster and uses less bandwidth.

Setting up Sparkle in an app requires no code changes in most cases, only some configuration in Xcode (the Mac development tool) and a simple file hosted on a web server that lists available versions. The web server must support HTTPS. Sparkle 1.x, which this branch represents, does not work with sandboxed apps. A newer version called Sparkle 2, which does support sandboxing, is available in a separate branch.

The framework is open source and has been used by thousands of Mac apps. It requires macOS 10.9 or later.

Where it fits