macos-auto-update

Implements Sparkle auto-update support for native macOS apps with appcast feeds.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/celeroncoder/skills --skill macos-auto-update-celeroncoder
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: macos-auto-update
Source: https://github.com/celeroncoder/skills/tree/main/macos-auto-update
Command: npx skills add https://github.com/celeroncoder/skills --skill macos-auto-update-celeroncoder

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Distributing updates for macOS apps outside the Mac App Store requires manual infrastructure for update checking, signing, and delivery. This Skill guides the complete integration of the Sparkle framework so a native macOS app can check for, download, and install updates automatically. ## Core Features & Use Cases - Sparkle SPM Integration: Adds the Sparkle 2.x package dependency and configures Info.plist keys including SUFeedURL and SUPublicEDKey. - UpdaterManager Singleton: Provides a ready-to-use Swift singleton wrapping SPUStandardUpdaterController with DEBUG-build guards, Combine-based UI binding, and menu-bar app activation policy handling. - Appcast & Signing Setup: Covers EdDSA key generation, initial appcast.xml creation, and the release item format with sparkle:edSignature enclosures. - Use Case: You are shipping a menu-bar macOS app via GitHub releases and need a "Check for Updates" button in settings that securely delivers signed updates through a hosted appcast feed. ## Quick Start Add Sparkle auto-update support to my macOS app with a Check for Updates button and an appcast feed hosted on GitHub.

Frequently Asked Questions about macos-auto-update

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add Sparkle auto-updates to a macOS app?▼

Add the Sparkle package via SPM from github.com/sparkle-project/Sparkle, create an UpdaterManager singleton wrapping SPUStandardUpdaterController, set SUFeedURL and SUPublicEDKey in Info.plist, and wire a Check for Updates button into your settings UI.

How to generate EdDSA keys for Sparkle update signing?▼

Build your project with Sparkle, then locate the generate_keys binary in DerivedData and run it. It prints the public key for SUPublicEDKey in Info.plist and stores the private key in your Keychain for use by sign_update during releases.

Does Sparkle work with menu-bar-only macOS apps?▼

Yes, but apps running as .accessory must temporarily switch to .regular activation policy before showing the update window. Call NSApp.setActivationPolicy(.regular) and activate the app in checkForUpdates() so the Sparkle window appears.

Why does Sparkle check for updates fail in debug builds?▼

Sparkle should be disabled in DEBUG builds because it would attempt to replace your debug app with a signed release build. Guard start() and checkForUpdates() with #if DEBUG checks so update logic only runs in release configurations.

Does Sparkle require special hardened runtime entitlements?▼

No special entitlements are needed. Sparkle 2.x works with the standard hardened runtime configuration required for notarization, so no additional entitlement keys must be added to your app.