asc-notarization
Automate macOS application archiving, export, and Apple notarization for non-App Store distribution using xcodebuild and the asc CLI.
Introduction
This skill provides a robust, command-line-driven workflow for preparing macOS applications for direct distribution outside the App Store. It is designed for developers who need to manage the lifecycle of Developer ID signing and Apple notarization using Apple's Notary API v2. By integrating xcodebuild for the archiving and export process with the asc CLI for submission and status tracking, this tool reduces the friction involved in meeting macOS security requirements.
-
Streamlines the entire macOS release pipeline: Archive, Export, Zip, Submit, and Staple.
-
Automates preflight verification for Developer ID Application certificates and keychain trust settings.
-
Provides clear error handling for common signing failures, including invalid trust settings, missing timestamps, and hardened runtime configuration issues.
-
Supports various distribution formats, including .zip, .dmg, and .pkg files, with specific handling for Developer ID Installer certificates.
-
Includes flexible polling options for notarization status, allowing for both fire-and-forget submission and synchronous waiting with custom timeouts.
-
Requires Xcode command line tools and an authenticated asc CLI session via App Store Connect API keys.
-
Expects a valid Developer ID Application certificate installed in the local login keychain.
-
Input typically involves an existing Xcode project, a specific scheme for macOS, and a pre-configured ExportOptions.plist file.
-
Output consists of a notarized, developer-signed app bundle or disk image ready for end-user distribution.
-
Use the diagnostic commands (log, status, list) provided by the asc notarization suite to resolve rejection issues from the Apple notary service effectively.
Repository Stats
- Stars
- 775
- Forks
- 41
- Open Issues
- 0
- Language
- Not provided
- Default Branch
- main
- Sync Status
- Idle
- Last Synced
- May 1, 2026, 08:02 AM