Skip to content

CI: build + attach iOS .ipa on release#4

Open
JacobStephens2 wants to merge 1 commit into
mainfrom
ios-release-workflow
Open

CI: build + attach iOS .ipa on release#4
JacobStephens2 wants to merge 1 commit into
mainfrom
ios-release-workflow

Conversation

@JacobStephens2
Copy link
Copy Markdown
Owner

Automates the iOS .ipa release the same way the Android .apk ships — no local machine needed.

Trigger

  • Release published → builds the .ipa and attaches it to that release.
  • Manual (Actions ▸ Run workflow) → attaches to an existing tag you pick.

How it works

macos-15 runner → npm ci + npm run build + cap sync → import signing cert → write ASC API key → scripts/build-ios-ipa.sh --skip-web --release <tag>. Also uploads the .ipa as a workflow artifact as a fallback.

The script gained optional App Store Connect API-key auth (ASC_KEY_ID/ASC_ISSUER_ID/ASC_KEY_PATH) so -allowProvisioningUpdates can manage the app + widget development profiles on a runner with no logged-in Apple account. Empty-array expansion is guarded for macOS bash 3.2; local runs (no ASC vars) are unchanged.

⚠️ Required before this runs — add 5 repo secrets

Settings ▸ Secrets and variables ▸ Actions:

Secret What
IOS_CERT_P12_BASE64 Apple Development cert + key, exported as .p12, then base64 -i cert.p12
IOS_CERT_PASSWORD the .p12 export password
ASC_API_KEY_P8_BASE64 App Store Connect API key .p8 (ASC ▸ Users and Access ▸ Integrations), base64'd
ASC_KEY_ID the key's Key ID
ASC_ISSUER_ID the Issuer ID

The full how-to is in the workflow file's header comment.

🤖 Generated with Claude Code

Publishing a release (or a manual dispatch against a tag) now builds the
development-signed .ipa on a macOS runner and uploads it to that release —
matching how the Android .apk ships, no local machine required.

Extends scripts/build-ios-ipa.sh to pass an App Store Connect API key to
xcodebuild when ASC_KEY_ID / ASC_ISSUER_ID / ASC_KEY_PATH are set, so
-allowProvisioningUpdates can manage the app + widget development profiles
without an interactive Apple account (the empty-array expansion is guarded for
macOS's bash 3.2). The workflow header documents the five required secrets.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant