macos-release

Automates macOS app releases with DMG packaging, Sparkle signing, and GitHub publishing.

Updated Mar 12, 2026
One-click install
npx skills add https://github.com/RavitejaKarra24/dotfiles --skill macos-release-ravitejakarra24
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: macos-release
Source: https://github.com/RavitejaKarra24/dotfiles/tree/main/agents/.agents/skills/macos-release
Command: npx skills add https://github.com/RavitejaKarra24/dotfiles --skill macos-release-ravitejakarra24

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires create-dmg, gh.

What problem does it solve? Releasing a native macOS app outside the App Store involves a long, error-prone manual pipeline: archiving, notarizing, exporting, building a DMG, signing it with Sparkle's EdDSA key, editing appcast.xml, pushing to git, and creating a GitHub release. This Skill guides and automates that entire pipeline so a new version ships consistently every time. ## Core Features & Use Cases - Step-by-step release guide: Covers version bumping, Xcode archiving, notarization, DMG creation with create-dmg, Sparkle EdDSA signing, appcast.xml updates, and GitHub release creation via gh. - Automated Go CLI: An interactive CLI (configured via release.json) that validates the exported app's Info.plist, finds Sparkle's sign_update in DerivedData, collects release notes, builds and signs the DMG, updates the appcast, pushes to git, and creates the GitHub release in one run. - Use Case: After exporting YourApp.app from Xcode to ~/Downloads, run the CLI from your project directory and it handles everything from DMG creation through the published GitHub release, warning you if the build number already exists in the appcast. ## Quick Start Ask the assistant to release version 1.2 of your macOS app to GitHub with Sparkle appcast updates using the exported app in your Downloads folder.

Frequently Asked Questions about macos-release

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

FAQPage Schema
How do I release a macOS app on GitHub with Sparkle updates?

Export the notarized app from Xcode to ~/Downloads, then run the release CLI from your project directory. It creates the DMG with create-dmg, signs it using Sparkle's sign_update, updates appcast.xml, pushes to git, and creates the GitHub release with the DMG attached.

How do I sign a DMG with Sparkle for auto-updates?

Run Sparkle's sign_update binary on the DMG file, which outputs an EdDSA signature and file length. The binary is found in Xcode's DerivedData under SourcePackages/artifacts/sparkle after building your project with Sparkle.

What tools are required for the macOS release pipeline?

You need create-dmg and gh installed via Homebrew, plus git and plutil which are built into macOS. Sparkle's sign_update binary is located automatically in DerivedData after building your project in Xcode.

Why is sign_update not found in DerivedData?

The sign_update binary only exists after building your project in Xcode with the Sparkle package dependency. Build the project once, then the CLI searches DerivedData directories matching your configured prefixes for the binary.

Why is my Sparkle app not detecting updates?

Verify that SUFeedURL in your app's Info.plist points to the raw appcast URL (https://raw.githubusercontent.com/OWNER/REPO/main/appcast.xml), not the GitHub page URL. Also confirm SUPublicEDKey is present and the build number is unique.

What happens if the build number already exists in appcast.xml?

The CLI warns that the build number already exists in the appcast and asks for confirmation before continuing. To avoid this, bump CURRENT_PROJECT_VERSION in Xcode before archiving each release.