| name | asc-submission-health |
| description | Preflight App Store submissions, submit builds, and monitor review status with asc CLI. Use when shipping to App Store review, troubleshooting review submission failures, checking encryption compliance, verifying version metadata, monitoring review status, cancelling a submission, or fixing "Version is not in valid state" errors. Triggers: "App Store submission", "submit for review", "submission health", "preflight check", "review status", "encryption compliance", "submission failed", "version not valid state", "asc submit", "review rejection". |
asc Submission Health
Iron Law
NEVER SUBMIT TO APP STORE REVIEW WITHOUT COMPLETING ALL 7 PREFLIGHT CHECKS — A FAILED SUBMISSION WASTES REVIEW QUEUE TIME
Read reference/submission-preflight-checklist.md and complete every item before running any submit command.
Preconditions
- Auth is configured (
asc auth login or ASC_* env vars set)
- App, version, and build IDs resolved (use
asc-id-resolver skill)
- Build is processed (not in
PROCESSING state)
- All required metadata is complete
Pre-submission Checklist
The full 7-step checklist with commands is in reference/submission-preflight-checklist.md.
Quick reference — all 7 steps must pass before submitting:
- Verify build status — build must be
VALID, not PROCESSING
- Encryption compliance — declaration must exist and be assigned to build
- Content rights declaration — must be set on the app
- Version metadata — copyright, release type must be set
- Localizations complete — all required locales have content
- Screenshots present — all required device sizes uploaded
- App info localizations — privacy policy URL set for all locales
For full commands for each step: Read reference/submission-preflight-checklist.md
Submit
Using Review Submissions API (Recommended)
asc review submissions-create --app "APP_ID" --platform IOS
asc review items-add --submission "SUBMISSION_ID" --item-type appStoreVersions --item-id "VERSION_ID"
asc review submissions-submit --id "SUBMISSION_ID" --confirm
Using Submit Command
asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm
asc submit status --id "SUBMISSION_ID"
asc submit status --version-id "VERSION_ID"
Monitor
asc review submissions-list --app "APP_ID" --paginate
asc submit status --id "SUBMISSION_ID"
Cancel / Retry
asc submit cancel --id "SUBMISSION_ID" --confirm
asc review submissions-cancel --id "SUBMISSION_ID" --confirm
Common Submission Errors
"Version is not in valid state"
The version is in a state that does not allow submission. Check:
asc versions get --version-id "VERSION_ID" --include-build
Common causes: build not attached, metadata incomplete, prior submission not cancelled.
"Export compliance must be approved"
asc encryption declarations list --app "APP_ID"
asc encryption declarations assign-builds --id "DECLARATION_ID" --build "BUILD_ID"
"Multiple app infos found"
asc app-infos list --app "APP_ID"
Use the app info ID with --app-info flag on localizations commands.
Notes
- Build must be processed before submission — poll
asc builds info until state is VALID
- Encryption declaration must be assigned to the specific build, not just created
- Use Review Submissions API for more control;
asc submit create is a shorthand
Documentation Sources
| Source | How to Access | Purpose |
|---|
| asc CLI help | asc submit --help, asc review --help | Current submission and review flags |
| Preflight checklist | Read reference/submission-preflight-checklist.md | Full 7-step pre-submission commands |
| asc-id-resolver skill | Load skill | Resolve app/version/build IDs before submitting |