Skip to content

Add production release workflow with Developer ID code signing and notarization#2

Draft
Copilot wants to merge 2 commits into
masterfrom
copilot/add-production-release-setup
Draft

Add production release workflow with Developer ID code signing and notarization#2
Copilot wants to merge 2 commits into
masterfrom
copilot/add-production-release-setup

Conversation

Copilot AI commented Mar 2, 2026

Copy link
Copy Markdown

No automated pipeline existed for producing a signed, notarized macOS release artifact. Building a distributable app required manual Xcode steps outside CI.

Changes

.github/workflows/release.yml

New workflow triggered on v* tags. Full pipeline:

  • Keychain setup — imports Developer ID Application .p12 cert from secrets into an ephemeral keychain; grants codesign access without UI prompts
  • Archivexcodebuild archive with CODE_SIGN_IDENTITY="Developer ID Application" and team ID
  • Exportxcodebuild -exportArchive via ExportOptions.plist (Developer ID, manual signing)
  • Notarize — submits to Apple via xcrun notarytool --wait, then staples the ticket with xcrun stapler
  • Release — zips the final app, creates a GitHub Release with auto-generated notes and the zip attached

ExportOptions.plist

Configures archive export for Developer ID direct distribution with manual signing style.

Required secrets

Secret Value
DEVELOPER_ID_APPLICATION_CERT_P12_BASE64 base64 -i cert.p12 output
DEVELOPER_ID_APPLICATION_CERT_PASSWORD .p12 export password
APPLE_TEAM_ID 10-char team ID from developer.apple.com
NOTARIZATION_APPLE_ID Apple ID email
NOTARIZATION_PASSWORD App-specific password (appleid.apple.com)

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: danaspiegel <6631+danaspiegel@users.noreply.github.com>
Copilot AI changed the title [WIP] Add production release generation with code signing Add production release workflow with Developer ID code signing and notarization Mar 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants