Release flow (TestFlight and App Store)
Use this skill when you need to get a new build into TestFlight or submit to the App Store.
Preconditions
- •Ensure credentials are set (
asc auth loginorASC_*env vars). - •Use a new build number for each upload.
- •Prefer
ASC_APP_IDor pass--appexplicitly. - •Build must have encryption compliance resolved (see asc-submission-health skill).
iOS Release
Preferred end-to-end commands
- •TestFlight:
- •
asc publish testflight --app <APP_ID> --ipa <PATH> --group <GROUP_ID>[,<GROUP_ID>] - •Optional:
--wait,--notify,--platform,--poll-interval,--timeout
- •
- •App Store:
- •
asc publish appstore --app <APP_ID> --ipa <PATH> --version <VERSION> - •Optional:
--wait,--submit --confirm,--platform,--poll-interval,--timeout
- •
Manual sequence (when you need more control)
- •Upload the build:
- •
asc builds upload --app <APP_ID> --ipa <PATH>
- •
- •Find the build ID if needed:
- •
asc builds latest --app <APP_ID> [--version <VERSION>] [--platform <PLATFORM>]
- •
- •TestFlight distribution:
- •
asc builds add-groups --build <BUILD_ID> --group <GROUP_ID>[,<GROUP_ID>]
- •
- •App Store attach + submit:
- •
asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID> - •
asc submit create --app <APP_ID> --version <VERSION> --build <BUILD_ID> --confirm
- •
- •Check or cancel submission:
- •
asc submit status --id <SUBMISSION_ID>or--version-id <VERSION_ID> - •
asc submit cancel --id <SUBMISSION_ID> --confirm
- •
macOS Release
macOS apps are distributed as .pkg files, not .ipa.
Build and Export
See asc-xcode-build skill for full build/archive/export workflow.
Upload PKG
Use xcrun altool (asc doesn't yet support .pkg uploads directly):
bash
# Ensure API key is in ~/.appstoreconnect/private_keys/ xcrun altool --upload-app \ -f "/path/to/YourApp.pkg" \ --type macos \ --apiKey "$ASC_KEY_ID" \ --apiIssuer "$ASC_ISSUER_ID"
Attach and Submit
Same as iOS, but use --platform MAC_OS:
bash
# Wait for build to process asc builds list --app <APP_ID> --platform MAC_OS --limit 5 # Attach to version asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID> # Create submission asc review submissions-create --app <APP_ID> --platform MAC_OS # Add version item asc review items-add \ --submission <SUBMISSION_ID> \ --item-type appStoreVersions \ --item-id <VERSION_ID> # Submit asc review submissions-submit --id <SUBMISSION_ID> --confirm
visionOS / tvOS Release
Same as iOS flow, use appropriate --platform:
- •
VISION_OS - •
TV_OS
Multi-Platform Release
When releasing the same version across platforms:
- •Upload each platform's build separately
- •Create version for each platform if not exists
- •Attach builds to respective versions
- •Submit each platform separately (or together via reviewSubmissions API)
Pre-submission Checklist
Before submitting, verify:
- • Build status is
VALID(not processing) - • Encryption compliance resolved
- • Content rights declaration set
- • Copyright field populated
- • All localizations complete
- • Screenshots present
See asc-submission-health skill for detailed preflight checks.
Notes
- •Always use
--helpto verify flags for the exact command. - •Use
--output table/--output markdownfor human-readable output; default is JSON. - •macOS builds require
ITSAppUsesNonExemptEncryptionin Info.plist to avoid encryption issues.