explaingit

sparkle-project/sparkle

8,983Objective-CAudience · developerComplexity · 2/5Setup · moderate

TLDR

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.

Mindmap

mindmap
  root((Sparkle))
    What it does
      Auto-update for Mac apps
      Branded update dialog
      Silent background installs
    Security
      Digital signatures
      Apple code signing
      HTTPS appcast required
    Features
      Delta updates
      Critical update prompts
      Release notes display
    Setup
      Xcode configuration
      Appcast XML on web server
      No code changes needed
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add automatic update checking to your Mac app so users are notified when new versions are available.

USE CASE 2

Enable delta updates so users only download the files that changed between versions, not the full app.

USE CASE 3

Show a branded update dialog with your app's own name and icon rather than any third-party branding.

Tech stack

Objective-CXcodemacOS

Getting it running

Difficulty · moderate Time to first run · 30min

Requires an HTTPS-hosted appcast feed and Xcode configuration, Sparkle 1.x is not compatible with Mac App Store sandboxed apps.

In plain English

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.

Copy-paste prompts

Prompt 1
How do I integrate Sparkle 1.x into my macOS Xcode project to enable automatic app updates?
Prompt 2
Show me how to set up an appcast XML feed on my HTTPS web server so Sparkle can find new versions of my app.
Prompt 3
How do I sign Sparkle update packages so the framework verifies authenticity before installing?
Prompt 4
What is the difference between Sparkle 1.x and Sparkle 2 and which one should I use for a sandboxed Mac app?
Open on GitHub → Explain another repo

← sparkle-project on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.