codesign
macOS code signing and verification utility
TLDR
Sign an application
SYNOPSIS
codesign operation [options] path...
DESCRIPTION
codesign creates, verifies, and displays code signatures on macOS. Code signing is required for Gatekeeper approval, notarization, and distribution of applications. It cryptographically signs executables, applications, frameworks, plugins, and other code to verify their authenticity and integrity.
The tool integrates with macOS security frameworks to enforce that code comes from identified developers and hasn't been tampered with. Signing requires valid certificates from Apple stored in the Keychain. Timestamps from Apple's servers ensure signatures remain valid even after certificates expire.
Deep signing recursively signs all nested content within bundles, which is necessary for complex applications with embedded frameworks and plugins. Entitlements files specify security capabilities and permissions. Verification confirms signatures are valid and meet specified requirements.
PARAMETERS
--force, -f
Replace existing signature--deep
Recursively sign nested content--timestamp[=url]
Request timestamp from server--options flags
Set code signing options (runtime, etc.)-a arch, --architecture arch
Specify architecture for fat binaries--all-architectures
Verify all architectures--entitlements file
Embed entitlements from file-r requirement
Set code requirement-i identifier
Set bundle identifier--strict
Strict verification
OPERATIONS
-s identity, --sign identity
Sign code with identity-v, --verify
Verify code signature-d, --display
Display signature information--remove-signature
Remove existing signature
EXIT CODES
0: Success
1: Signing/verification failed
2: Invalid arguments
3: Signature valid but requirement failed
CAVEATS
Option order matters (verb before noun). Use --force to replace signatures. Requires valid signing identity from Keychain.
