asc-release-flow
Scannednpx machina-cli add skill rudrankriyam/app-store-connect-cli-skills/asc-release-flow --openclawRelease 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
Upload the exported .pkg using asc:
asc builds upload \
--app <APP_ID> \
--pkg <PATH_TO_PKG> \
--version <VERSION> \
--build-number <BUILD_NUMBER> \
--wait
Notes:
--pkgautomatically sets platform toMAC_OS.asc publish appstorecurrently supports--ipaworkflows; for macOS.pkg, useasc 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_OSTV_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.
Source
git clone https://github.com/rudrankriyam/app-store-connect-cli-skills/blob/main/skills/asc-release-flow/SKILL.mdView on GitHub Overview
Provides end-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. It covers both iOS and macOS releases (including .pkg for macOS), with guidance from uploading a build to distributing to TestFlight or submitting to the App Store and handling pre-submission checks.
How This Skill Works
Authenticate and set the correct app context, then choose either the end-to-end commands (asc publish testflight and asc publish appstore) or the manual sequence for more control. The workflow covers uploading builds, distributing to TestFlight groups, attaching builds to versions, creating submissions, and monitoring or cancelling submissions.
When to Use It
- Upload a new IPA/PKG and distribute the build to TestFlight groups.
- Submit a new iOS App Store version with a specified version number.
- Release a macOS (.pkg) build by uploading, attaching to a version, and submitting.
- Release the same version across multiple platforms (iOS, macOS, visionOS, tvOS) in a coordinated flow.
- Check pre-submission health and monitor or cancel an in-flight submission.
Quick Start
- Step 1: Authenticate and set your app context (asc auth login or ASC_* env vars; ensure a new build number).
- Step 2: Use an end-to-end command (e.g., asc publish testflight --app <APP_ID> --ipa <PATH> --group <GROUP_ID> or asc publish appstore --app <APP_ID> --ipa <PATH> --version <VERSION>).
- Step 3: If you need granular control, follow the manual sequence (asc builds upload, asc versions attach-build, asc submit create, then status checks).
Best Practices
- Always use a new, incremental build number for each upload to avoid conflicts.
- Specify the app context with --app or ASC_APP_ID to prevent mis-submissions.
- Run pre-submission checks (encryption compliance, content rights, metadata, and screenshots) before submitting.
- Prefer the end-to-end publish commands for speed, but switch to the manual sequence when you need granular control.
- Track IDs (build, version, submission) and use --wait or status queries to monitor progress.
Example Use Cases
- Upload a new iOS build and distribute it to a TestFlight group using asc publish testflight.
- Publish an iOS App Store version by supplying the IPA and version with asc publish appstore.
- Upload and attach a macOS .pkg to a version, then submit for review.
- Release the same version to iOS and macOS with multi-platform steps.
- Monitor a submission with asc submit status and cancel if issues are detected.