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 login
or
ASC_*
env vars).
Use a new build number for each upload.
Prefer
ASC_APP_ID
or pass
--app
explicitly.
Build must have encryption compliance resolved (see asc-submission-health skill).
iOS Release
Preferred end-to-end commands
TestFlight:
asc publish testflight --app
\ --pkg < PATH_TO_PKG
\ --version < VERSION
\ --build-number < BUILD_NUMBER
\ --wait Notes: --pkg automatically sets platform to MAC_OS . asc publish appstore currently supports --ipa workflows; for macOS .pkg , use asc builds upload --pkg + attach/submit steps below. Attach and Submit Same as iOS, but use --platform MAC_OS :
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 --help to verify flags for the exact command. Use --output table / --output markdown for human-readable output; default is JSON. macOS builds require ITSAppUsesNonExemptEncryption in Info.plist to avoid encryption issues.