build(ios): TestFlight release pipeline (xcodebuild + ASC API key)#134
Merged
Conversation
…ct API key) Lisa Pocket is native SwiftUI, not Expo, so Markup's `eas submit` doesn't apply; this is the equivalent — `xcodebuild archive` + `-exportArchive` (destination: upload) driven by an App Store Connect API key (automatic provisioning + the upload in one go). Mirrors the secret-gated, ephemeral-keychain style of release-mac-apps.yml (itself lifted from Markup). - packaging/ios-companion/testflight.sh — one-command local archive+upload; flips aps-environment to production for the archive; build number defaults to a timestamp. - .github/workflows/release-ios-testflight.yml — tag (pocket-v*) / dispatch; imports an Apple Distribution cert + the ASC .p8 from secrets and runs the script; no-op (stays green) when the secrets are absent. - RELEASE.md — the one-time Apple-account setup (app record + ASC API key) and the secrets list. gitignore the archive/export output. Inert without your Apple credentials (an ASC API key + an App Store Connect app record) — those are account actions only you can do. Verified here: bash + YAML + plist lint, simulator build still BUILD SUCCEEDED; the signed archive/upload can't run without the account, so it isn't exercised here. Co-Authored-By: Claude Opus 4.8 <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.
A TestFlight release pipeline for Lisa Pocket, modeled on the Markup-derived
release-mac-apps.ymlpattern (secret-gated Apple signing onmacos-latest). Lisa Pocket is native SwiftUI, not Expo, so this usesxcodebuild archive+-exportArchive (destination: upload)with an App Store Connect API key (automatic provisioning + upload in one step) rather thaneas submit.What
packaging/ios-companion/testflight.sh— one command:xcodegen generate→ flipaps-environmentto production →archive(automatic signing via the API key) → export+upload to TestFlight. Build number defaults to a timestamp..github/workflows/release-ios-testflight.yml—pocket-v*tag / manual dispatch; imports an Apple Distribution cert + the ASC.p8from secrets, runs the script; no-op (green) when secrets are absent.RELEASE.md— the one-time Apple-account setup (App Store Connect app record + API key) and the secrets table. Team9LH9NBX7P4, bundle idai.meetlisa.pocket.Verification
bash
-n, workflow YAML, and the generated ExportOptions plist all lint clean; simulator./build.shstill BUILD SUCCEEDED.Honest limit
The actual upload authenticates to your Apple account — it can't run without an ASC API key + the app record (account actions). So the signed archive/upload is not exercised here; everything up to it is scripted and verified. Once you create the key + app record, it's one command (
./testflight.sh) or one tag.🤖 Generated with Claude Code