with one click
asc-submit
// Build, archive, export, and upload the try! Swift Tokyo app to App Store Connect for iOS, macOS, and visionOS using ASC CLI.
// Build, archive, export, and upload the try! Swift Tokyo app to App Store Connect for iOS, macOS, and visionOS using ASC CLI.
Patterns for Playwright E2E testing with custom fixtures, role-based selectors, and assertion patterns.
Guidelines for building static sites using the Ignite Swift framework.
Guidelines for Android development using the Skip framework (Swift to Kotlin transpilation).
Expert guidance on The Composable Architecture (TCA) for Swift, focusing on ReducerProtocol, macros, and testability.
Definitive guide for Swift 6+ Concurrency, strictly enforcing Sendable, Actors, and Structured Concurrency.
Expert guidance for Vapor 4+ development, focusing on async/await, Fluent, and content negotiation.
| name | asc-submit |
| description | Build, archive, export, and upload the try! Swift Tokyo app to App Store Connect for iOS, macOS, and visionOS using ASC CLI. |
This skill covers building, archiving, exporting, and uploading the try! Swift Tokyo app to App Store Connect for all three platforms (iOS, macOS, visionOS).
asc auth status should show credentialsExportOptions.plist at project root (method: app-store-connect, teamID: 9PC9DZ9559)All three platforms share CURRENT_PROJECT_VERSION in the Xcode project. When archiving, override via xcodebuild if needed:
xcodebuild ... CURRENT_PROJECT_VERSION=<number>
Query the highest existing build number across all platforms and use max + 1:
asc builds list --app 6479317240 --platform IOS --limit 1
asc builds list --app 6479317240 --platform MAC_OS --limit 1
asc builds list --app 6479317240 --platform VISION_OS --limit 1
IMPORTANT: Do NOT archive multiple platforms in parallel. They share the same DerivedData and the build database will lock, causing disk I/O errors. Always archive sequentially.
xcodebuild clean archive \
-workspace trySwiftTokyo.xcworkspace -scheme "App" \
-configuration Release -archivePath /tmp/tryTokyo-iOS.xcarchive \
-destination "generic/platform=iOS" -allowProvisioningUpdates
xcodebuild clean archive \
-workspace trySwiftTokyo.xcworkspace -scheme "App" \
-configuration Release -archivePath /tmp/tryTokyo-macOS.xcarchive \
-destination "generic/platform=macOS" -allowProvisioningUpdates
xcodebuild clean archive \
-workspace trySwiftTokyo.xcworkspace -scheme "App" \
-configuration Release -archivePath /tmp/tryTokyo-visionOS.xcarchive \
-destination "generic/platform=xrOS" -allowProvisioningUpdates
Export can run in parallel (no DerivedData conflict).
xcodebuild -exportArchive \
-archivePath /tmp/tryTokyo-<platform>.xcarchive \
-exportPath /tmp/tryTokyo-<platform>-export \
-exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates
asc builds upload --app 6479317240 \
--ipa "/tmp/tryTokyo-iOS-export/try! Tokyo.ipa"
asc builds upload --app 6479317240 \
--pkg "/tmp/tryTokyo-macOS-export/try! Tokyo.pkg" \
--version "<VERSION>" --build-number "<BUILD>"
asc builds upload --app 6479317240 \
--ipa "/tmp/tryTokyo-visionOS-export/try! Tokyo.ipa" \
--platform VISION_OS
CRITICAL: Without --platform VISION_OS, the visionOS IPA is processed as iOS and will fail with platform validation errors (ITMS-90508, ITMS-90502, etc.).
# Check processing state (should be VALID)
asc builds list --app 6479317240 --platform IOS --limit 1
asc builds list --app 6479317240 --platform MAC_OS --limit 1
asc builds list --app 6479317240 --platform VISION_OS --limit 1
# Preflight checks before submission
asc submit preflight --app 6479317240 --version "<VERSION>" --platform IOS
asc submit preflight --app 6479317240 --version "<VERSION>" --platform MAC_OS
asc submit preflight --app 6479317240 --version "<VERSION>" --platform VISION_OS
--platform VISION_OS to asc builds upload.--version and --build-number are required for PKG uploads.rm -rf /tmp/tryTokyo-<platform>-export).