asc submission health Use this skill to reduce review submission failures and monitor status. Preconditions Auth configured and app/version/build IDs resolved. Build is processed (not in processing state). All required metadata is complete. Pre-submission Checklist 1. Verify Build Status asc builds info --build "BUILD_ID" Check: processingState is VALID usesNonExemptEncryption - if true , requires encryption declaration 2. Encryption Compliance If usesNonExemptEncryption: true :
List existing declarations
asc encryption declarations list --app "APP_ID"
Create declaration if needed
asc encryption declarations create \ --app "APP_ID" \ --app-description "Uses standard HTTPS/TLS" \ --contains-proprietary-cryptography = false \ --contains-third-party-cryptography = true \ --available-on-french-store = true
Assign to build
asc encryption declarations assign-builds \ --id "DECLARATION_ID" \ --build "BUILD_ID" Better approach: Add ITSAppUsesNonExemptEncryption = NO to Info.plist and rebuild. 3. Content Rights Declaration Required for all App Store submissions:
Check current status
asc apps get --id "APP_ID" --output json | jq '.data.attributes.contentRightsDeclaration'
Set if missing
asc apps update --id "APP_ID" --content-rights "DOES_NOT_USE_THIRD_PARTY_CONTENT" Valid values: DOES_NOT_USE_THIRD_PARTY_CONTENT USES_THIRD_PARTY_CONTENT 4. Version Metadata
Check version details
asc versions get --version-id "VERSION_ID" --include-build
Verify copyright is set
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company" 5. Localizations Complete
List version localizations
asc localizations list --version "VERSION_ID"
Check required fields: description, keywords, whatsNew, supportUrl
- Screenshots Present Each locale needs screenshots for the target platform.
- App Info Localizations (Privacy Policy)
List app info IDs (if multiple exist)
asc app-infos list --app "APP_ID"
Check privacy policy URL
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" Submit Using Review Submissions API (Recommended)
Create submission
asc review submissions-create --app "APP_ID" --platform IOS
Add version to submission
asc review items-add \ --submission "SUBMISSION_ID" \ --item-type appStoreVersions \ --item-id "VERSION_ID"
Submit for review
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 Use --platform when multiple platforms exist. Monitor
Check submission status
asc submit status --id "SUBMISSION_ID" asc submit status --version-id "VERSION_ID"
List all submissions
asc review submissions-list --app "APP_ID" --paginate Cancel / Retry
Cancel submission
asc submit cancel --id "SUBMISSION_ID" --confirm
Or via review API
asc review submissions-cancel --id "SUBMISSION_ID" --confirm Fix issues, then re-submit. Common Submission Errors "Version is not in valid state" Check: Build is attached and VALID Encryption declaration approved (or exempt) Content rights declaration set All localizations complete Screenshots present for all locales "Export compliance must be approved" The build has usesNonExemptEncryption: true . Either: Upload export compliance documentation Or rebuild with ITSAppUsesNonExemptEncryption = NO in Info.plist "Multiple app infos found" Use --app-info flag with the correct app info ID: asc app-infos list --app "APP_ID" Notes asc submit create uses the new reviewSubmissions API automatically. Use --output table when you want human-readable status. macOS submissions follow the same process but use --platform MAC_OS .