From d89428f039b1ce430065b1cb1df756bcbdbe834f Mon Sep 17 00:00:00 2001 From: Jaasthi Santosh Naidu Lakshman Senna Date: Thu, 10 Sep 2026 00:38:47 -0700 Subject: [PATCH] Fix TestFlight archive: declare a shared Continuity scheme Every TestFlight run since PR #127 died in the Archive step after ~30s with xcodebuild exit 65: "The project named "Continuity" does not contain a scheme named "Continuity"". project.yml declared no schemes, and XcodeGen only emits schemes a target asks for; the runs had been relying on xcodebuild auto-creating one, which Xcode 26.x no longer does (same XcodeGen 2.46.0 + Xcode 26.6 locally reproduces the failure, and the declared scheme makes `xcodebuild archive -scheme Continuity` succeed). Records the scheme gotcha in AGENTS.md / CLAUDE.md so it isn't rediscovered. Co-Authored-By: Claude Fable 5.1 --- AGENTS.md | 5 +++++ CLAUDE.md | 4 +++- project.yml | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 11216ee..7ecf4cb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -81,6 +81,11 @@ or commit it. Bundle id `com.sanylax.continuity` (share extension - **New files need `xcodegen generate`** before `xcodebuild`, or you get "cannot find X in scope." XcodeGen uses explicit file lists. +- **Schemes come only from `project.yml`.** XcodeGen emits no scheme unless a target declares + `scheme:` (the Continuity target does — keep it). `xcodebuild` on Xcode 26.x does **not** + auto-create schemes the way the Xcode GUI does, so without it `-scheme Continuity` fails in + ~30s with exit 65 "does not contain a scheme named" — which is exactly how every TestFlight + run from PR #127 to #137 died. - **onnxruntime is a static `.framework` (ar archive), not a dylib.** Xcode still embeds a broken ~50 KB stub into `Continuity.app/Frameworks`. Never "fix" that stub by patching `MinimumOSVersion` and re-signing — that cured ITMS upload checks while leaving a poison diff --git a/CLAUDE.md b/CLAUDE.md index 71eb7a5..9a27f98 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -88,7 +88,9 @@ existing `searchQuery` → YouTube ingest path. automatically after processing. - Known failure modes already hit: App-Manager-role key (fixed — Admin key created); empty/placeholder secrets from copy-pasted commands; **ITMS error 90382 "Upload limit - reached"** = Apple's per-app daily cap — wait for the 24h window, nothing to fix. + reached"** = Apple's per-app daily cap — wait for the 24h window, nothing to fix; + **Archive step exits 65 after ~30s** = no `Continuity` scheme in the generated project + (see the AGENTS.md scheme gotcha) — `project.yml` must keep the target-level `scheme:`. - App Store Connect still has a legacy **Xcode Cloud "Archive – iOS"** workflow producing `action_required` checks on PRs; it's ASC-side, unrelated to code, and competes for upload quota — worth disabling in ASC. diff --git a/project.yml b/project.yml index 4941ce9..84e2ddd 100644 --- a/project.yml +++ b/project.yml @@ -66,6 +66,10 @@ targets: - CFBundleURLName: com.sanylax.continuity CFBundleURLSchemes: - continuity + # Shared scheme so `xcodebuild -scheme Continuity` works on a fresh checkout / CI without + # relying on Xcode's per-user scheme auto-creation (which xcodebuild does not perform). + scheme: + gatherCoverageData: false settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.sanylax.continuity