Files
sure/mobile/docs/iOS_TESTFLIGHT.md
2026-02-18 10:31:24 +01:00

54 lines
1.9 KiB
Markdown

# iOS TestFlight GitHub Action
This repository now includes `.github/workflows/ios-testflight.yml`, which builds a **signed** iOS IPA and uploads it to TestFlight.
## What must be in the repo
- The workflow file itself: `.github/workflows/ios-testflight.yml`
- Existing app signing identifiers in Xcode:
- Bundle ID `am.sure.mobile` (or your custom value in the workflow)
- Flutter assets and source already in `mobile/`
## Trigger paths
- Manual dispatch from the workflow UI.
- Tag push matching `ios-v*`.
- Called from `.github/workflows/mobile-release.yml` after the shared build job, so tagging `mobile-v*` now creates the GitHub release and uploads to TestFlight in one pipeline.
## Required GitHub Secrets
Set these in **Settings → Secrets and variables → Actions**:
- `APP_STORE_CONNECT_API_KEY_ID`
- `APP_STORE_CONNECT_API_ISSUER_ID`
- `APP_STORE_CONNECT_API_KEY_BASE64`
- Base64 version of the `.p8` private key content
- `IOS_TEAM_ID`
- `IOS_KEYCHAIN_PASSWORD`
- `IOS_DISTRIBUTION_P12_BASE64`
- `IOS_DISTRIBUTION_P12_PASSWORD`
- `IOS_DISTRIBUTION_CERT_NAME`
- Usually `iPhone Distribution`
- `IOS_PROVISIONING_PROFILE_NAME`
- `IOS_PROVISIONING_PROFILE_BASE64`
> Do **not** commit private keys, `.p12`, `.mobileprovision` or `.p8` files to the repository.
## Triggering
- Run manually: **Actions → iOS TestFlight → Run workflow**
- Push a tag that matches `ios-v*` (for example `ios-v1.2.3`)
## Recommended App Store Connect setup
- Use an API Key with App Manager or Developer role
- Create/download an iOS Distribution certificate (`.p12`), convert to base64 for `IOS_DISTRIBUTION_P12_BASE64`
- Create and distribute an **App Store** provisioning profile for `am.sure.mobile`
- Base64-encode the `.mobileprovision` file for `IOS_PROVISIONING_PROFILE_BASE64`
## Output
- IPA artifact: `ios-ipa-testflight`
- Uploaded IPA to TestFlight on successful upload step