← ClaudeAtlas

local-archive-export-uploadlisted

Use when a build must reach TestFlight without Xcode Cloud (quota, outage, CI not wired yet), or when a local `xcodebuild archive` / `-exportArchive -exportOptionsPlist` / `xcrun altool --upload-package` command fails — `ExportOptions.plist` keys (`method`, `destination`, `teamID`, `manageAppVersionAndBuildNumber`), `-authenticationKeyPath` vs `-allowProvisioningUpdates`, `CFBundleVersion` colliding with Xcode Cloud's counter. Temporary fallback for xcode-cloud-single-track-ci; does NOT cover ASC operations after upload → asc-api-automation, nor `notarytool` notarization → apple-skills:guide-macos-spm-packaging.
wei18/apple-dev-skills · ★ 18 · AI & Automation · score 81
Install: claude install-skill wei18/apple-dev-skills
# Local Archive, Export, Upload The manual escape hatch for getting a build to TestFlight when Xcode Cloud's **Main CI** workflow (→ `xcode-cloud-single-track-ci`) can't run — quota exhausted, an outage, or CI not wired up yet. Same three Apple CLIs Xcode Cloud uses under the hood — `xcodebuild archive`, `-exportArchive`, upload — driven by hand instead of Apple's managed runner. ## When to invoke - Xcode Cloud can't run but a build must reach internal TestFlight today. - Writing or debugging a local archive/export/upload script or one-off command. - Diagnosing an `ExportOptions.plist` / signing / build-number failure. - Asked "how do I ship a build without Xcode Cloud" or "what does `-exportOptionsPlist` need". ## Scope Owns: the local three-step pipeline (archive → export → upload) and its signing/export-key semantics. Does NOT own: - ASC operations once the build exists (TestFlight groups, what's-new, submission) → `asc-api-automation`. - What has to be true for the build to *pass* review → `app-store-review-rejections`. - `.p8` / API-key storage → `build-time-secret-injection` + `apple-public-repo-security`. - Restoring Xcode Cloud once quota returns — this is a **temporary substitute**, not a parallel permanent CI track. ## Pipeline | Step | Command | Notes | |---|---|---| | 1. Archive | `xcodebuild archive -scheme <Scheme> -destination 'generic/platform=iOS' -archivePath build/App.xcarchive` | `-destination` picks the platform; a `generic/platform=...`