Sign, notarize, and ship your Mac app in one command.
An interactive shell script that walks you through the entire macOS code signing and notarization process—from certificate selection to stapled ticket. No Xcode project required. No build system dependencies. Just your .app bundle and a terminal.
No Xcode project. No Fastlane. No CI pipeline. Just bash codesign-app.sh and follow the prompts.
The script handles every step Apple requires for distributing apps outside the Mac App Store—from identity detection to ticket stapling.
Finds Developer ID certificates in your keychain automatically
Signs frameworks, dylibs, helpers, and XPC services before the main bundle
Runs codesign verify, deep strict check, and Gatekeeper assessment
Creates a ZIP or signed DMG with Applications symlink, ready to ship
Submits to Apple, waits for approval, and staples the ticket automatically
Queries your keychain for Developer ID Application certificates. If only one exists, it offers to use it. Multiple? You pick.
Scans Frameworks, PlugIns, Helpers, and MacOS for dylibs, frameworks, XPC services, and helper binaries—signs each before the main bundle.
Bring your own entitlements file, or let the script generate a hardened runtime plist. Review it before signing—no silent defaults.
Package as a ZIP archive or a DMG disk image with an Applications symlink for drag-and-drop install. DMGs get code-signed too.
Submits to Apple’s notary service via Apple ID or App Store Connect API key, waits for the result, then staples the ticket and re-packages.
Pure bash. No Homebrew packages, no Ruby gems, no Node modules. Just Xcode CLI tools that ship with every Mac developer setup.
If you distribute a macOS app via your website, GitHub releases, or direct download, Apple requires it to be signed with a Developer ID certificate and notarized—or Gatekeeper blocks it.
Xcode handles this automatically for App Store builds. But if you’re building with Swift Package Manager, CMake, Electron, PyInstaller, or anything else that produces a .app bundle, you’re on your own.
This script fills that gap.
Built outside Xcode, needs manual signing
No Xcode project to handle signing for you
Python apps packaged for macOS distribution
Drop into GitHub Actions or any shell-based workflow
XPC services, frameworks, dylibs—all signed in correct order
xcode-select --install)One script. Signed, notarized, stapled, packaged. Gatekeeper approved.
Built by Metahuman Network · Supporting the people behind the technology.