Xcode Cloud¶
iOS build and distribution via Apple's Xcode Cloud. All builds archive to App Store Connect and distribute via TestFlight.
Products & Workflows¶
| App | Product ID | Workflow | Trigger | Scheme | File Filter | Notes |
|---|---|---|---|---|---|---|
| Nutri-E | A7AEE8F6 |
Default | main push | Nutri-E | None | ios/Nutri-E/Nutri-E.xcodeproj |
| Reward-E | 3B4EECB2 |
Default | main push | RewardE | None | ios/RewardE.xcodeproj |
| Fast-E | AAFB4E73 |
Default | main push | FastE | None | ios/FastE.xcodeproj |
| Fast-E | AAFB4E73 |
Fast-E - App Store | Manual only | FastE | None | Manual trigger for App Store builds |
| Count-E | AEB723D3 |
Default2 | main push | CountE | None | ios/CountE.xcodeproj |
| Drink-E | 275BD2D2 |
Default | main push | DrinkE | None | ios/DrinkE.xcodeproj |
| Drink-E | 8F9F479E |
Default | main push (ios/ only) | DrinkE | ios/ directory |
Duplicate product — has file filter |
| Heart-E | NONE | — | — | — | — | NOT configured in Xcode Cloud |
All workflows: Archive → iOS, distribution: APP_STORE_ELIGIBLE, clean build: true, auto-cancel: true.
Cuti-E Platform Apps (in Xcode Cloud but not managed by us)¶
| App | Product ID | Notes |
|---|---|---|
| Cuti-E Admin | 2F32A418 |
cutie-admin-ios |
| Cuti-E Feedback | 046A65C8 |
cutie-feedback |
| Cuti-E Super Admin | 063839D0 |
— |
Legacy¶
| App | Product ID | Notes |
|---|---|---|
| SupTrackAI | 8B960BC7 |
Old app, predecessor to Nutri-E |
Build Flow¶
Push to main (or manual trigger)
→ Xcode Cloud picks up via workflow trigger
→ Archive iOS app
→ Upload to App Store Connect
→ TestFlight internal distribution (automatic)
→ HUMAN APPROVAL required for App Store submission
GitHub Integration¶
Xcode Cloud GitHub App is installed account-wide on Stig-Johnny org. This creates check suites on ALL repos (including non-iOS MCP repos). Auto-merge workflows filter out xcode-cloud checks.
Fix needed: Restrict Xcode Cloud app to selected repos only in GitHub Settings → Integrations → Applications → Xcode Cloud → Configure.
Issues¶
- Heart-E not in Xcode Cloud — needs to be set up before it can ship
- Drink-E has 2 products — duplicate, should consolidate to one
- Count-E workflow named "Default2" — should rename to "Default" or "Count-E"
- Fast-E has manual workflow — "Fast-E - App Store" is manual-only, may be redundant with Default
CI Scripts¶
All apps use XcodeGen. The Xcode Cloud ci_scripts/ directory in each repo handles:
- ci_post_clone.sh — runs xcodegen generate after Xcode Cloud clones the repo
- Resolves SPM dependencies
Monitoring¶
GitHub Actions workflow monitor-xcode-cloud.yml (on some repos) monitors build status after merge. Missing on: drink-e, heart-e (see docs/infrastructure/ci-cd.md repo status table).