ci: add App Store submission pipeline via GitHub Actions
Some checks failed
CI / TypeScript (pull_request) Failing after 4s
CI / ESLint (pull_request) Failing after 4s
CI / Tests (pull_request) Failing after 12s
CI / Build Check (pull_request) Has been skipped
CI / Admin Web Tests (pull_request) Successful in 2m7s
CI / Deploy Edge Functions (pull_request) Has been skipped
Some checks failed
CI / TypeScript (pull_request) Failing after 4s
CI / ESLint (pull_request) Failing after 4s
CI / Tests (pull_request) Failing after 12s
CI / Build Check (pull_request) Has been skipped
CI / Admin Web Tests (pull_request) Successful in 2m7s
CI / Deploy Edge Functions (pull_request) Has been skipped
This commit is contained in:
71
docs/app-store-submission.md
Normal file
71
docs/app-store-submission.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# App Store Submission
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before triggering the CI pipeline, you need:
|
||||
|
||||
1. **Apple Developer Program membership** (paid, $99/year)
|
||||
2. **App Store Connect access** with Admin or App Manager role
|
||||
|
||||
## Step 1: Create App Store Connect API Key
|
||||
|
||||
1. Go to [App Store Connect → Users and Access → Integrations → App Store Connect API](https://appstoreconnect.apple.com/access/integrations/api)
|
||||
2. Click **Generate API Key** (or "+" button)
|
||||
3. Name it: `GitHub Actions CI`
|
||||
4. Set access to: **App Manager** (required for auto-signing + upload)
|
||||
5. Download the `.p8` file immediately (you cannot re-download it later)
|
||||
6. Note the **Key ID** and **Issuer ID** displayed on the page
|
||||
|
||||
## Step 2: Add GitHub Secrets
|
||||
|
||||
Go to your GitHub repo → **Settings → Secrets and variables → Actions → New repository secret**.
|
||||
|
||||
| Secret Name | Value |
|
||||
|---|---|
|
||||
| `APP_STORE_CONNECT_KEY_ID` | The Key ID from Step 1 (e.g., `ABC123XYZ`) |
|
||||
| `APP_STORE_CONNECT_ISSUER_ID` | The Issuer ID from Step 1 (UUID format) |
|
||||
| `APP_STORE_CONNECT_API_KEY_P8` | The **entire contents** of the `.p8` file, including `-----BEGIN PRIVATE KEY-----` and `-----END PRIVATE KEY-----` lines |
|
||||
|
||||
## Step 3: Trigger the Submission
|
||||
|
||||
Push a version tag to the repository:
|
||||
|
||||
```bash
|
||||
git tag v1.0.0
|
||||
git push origin v1.0.0
|
||||
```
|
||||
|
||||
Or run manually:
|
||||
- Go to **Actions** tab → **App Store Submission** → **Run workflow**
|
||||
|
||||
## What Happens
|
||||
|
||||
1. GitHub Actions runner (macOS) checks out your code
|
||||
2. Archives the app with Xcode auto-signing
|
||||
3. Exports an App Store IPA
|
||||
4. Uploads to App Store Connect
|
||||
5. The first upload **automatically creates** the app record in App Store Connect (bundle ID: `com.tabatago.app`)
|
||||
|
||||
## After Upload
|
||||
|
||||
1. Go to [App Store Connect → Apps](https://appstoreconnect.apple.com/apps)
|
||||
2. Select **TabataGo**
|
||||
3. Complete the **App Information** (description, screenshots, keywords, etc.)
|
||||
4. Complete the **Pricing and Availability** section
|
||||
5. Go to the new build under **TestFlight** or **App Store** tab
|
||||
6. Submit for review
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Symptom | Likely Cause |
|
||||
|---|---|
|
||||
| "No accounts with iTunes Connect access" | API key doesn't have App Manager permissions — recreate the key with correct access |
|
||||
| "No profiles found" | The bundle ID `com.tabatago.app` isn't registered yet — check Apple Developer portal |
|
||||
| "Duplicate build number" | Build number already used — bump `CFBundleVersion` in `project.yml` and re-tag |
|
||||
| "Authentication failed" | API key was revoked, expired, or secret is misspelled — verify secrets in repository settings |
|
||||
|
||||
## Build Number Increments
|
||||
|
||||
Each submission requires a unique build number. Edit `tabatago-swift/project.yml`:
|
||||
- Change `CFBundleVersion: "2"` → `"3"` in all three targets (TabataGo, TabataGoWatch, TabataGoWatchWidget)
|
||||
- Then regenerate the project: `cd tabatago-swift && xcodegen`
|
||||
Reference in New Issue
Block a user