Add macOS App Store build workflow#41
Open
bnsoni wants to merge 1 commit into
Open
Conversation
Adds a workflow that builds a signed universal (x64 + arm64) .pkg for Mac App Store submission. The workflow: - Imports Apple Distribution cert (signs .app) and Mac Installer Distribution cert (signs .pkg) into a temporary keychain - Embeds the Mac App Store provisioning profile - Builds universal binary via cargo tauri build --target universal-apple-darwin - Creates signed .pkg via xcrun productbuild - Uploads .pkg and .app as artifacts Also adds src-tauri/Info.plist with ITSAppUsesNonExemptEncryption=false (required for App Store compliance). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/workflows/build-macos-appstore.yml— builds a signed universal.pkgfor Mac App Storesrc-tauri/Info.plist— encryption compliance declaration (required by App Store)How it works
Unlike iOS (which uses API keys for automatic signing), macOS App Store builds require certificates directly:
The workflow produces a universal binary (Intel + Apple Silicon) in a single
.pkg.Secrets required (one-time setup)
APPLE_CERTIFICATEbase64 -i cert.p12 | pbcopyAPPLE_CERTIFICATE_PASSWORDAPPLE_SIGNING_IDENTITYsecurity find-identity -v -p codesigning→ e.g.Apple Distribution: Class Generation, LLC (L4FWRM8W5Z)MAC_INSTALLER_CERTIFICATEMAC_INSTALLER_CERTIFICATE_PASSWORDMAC_INSTALLER_IDENTITY3rd Party Mac Developer Installer: Class Generation, LLC (L4FWRM8W5Z)MAC_PROVISIONING_PROFILEbase64 -i profile.provisionprofile | pbcopyKEYCHAIN_PASSWORDopenssl rand -base64 32Certificate setup steps
ai.ibl.mentorai) and certificateOutput
mentorai-macos-pkg— signed.pkgready for App Store Connect uploadmentorai-macos-app— the.appbundle (useful for local testing)Test plan
.pkg.pkgand upload to App Store Connect🤖 Generated with Claude Code