asc-check-readiness
SKILL.md
asc versions check-readiness
Pre-flight check that aggregates all App Store submission requirements for a version.
Command
asc versions check-readiness --version-id <VERSION_ID> [--pretty]
Runs 6 API checks and returns a VersionReadiness report.
Reading the Output
Top-level decision field
"isReadyToSubmit": true → safe to submit; affordances.submit is present
"isReadyToSubmit": false → one or more MUST FIX checks failed
Check severity
| Field | Severity | Blocks isReadyToSubmit? |
|---|---|---|
stateCheck |
MUST FIX | Yes — state must be PREPARE_FOR_SUBMISSION |
buildCheck |
MUST FIX | Yes — build must be linked, valid, not expired |
pricingCheck |
MUST FIX | Yes — app must have a price schedule configured |
reviewContactCheck |
SHOULD FIX | No — warning only, submission still proceeds |
localizations[].pass |
SHOULD FIX | No — Apple may reject post-submit |
Build check fields
"buildCheck": {
"linked": true,
"valid": true,
"notExpired": true,
"buildVersion": "2.1.0 (102)",
"pass": true
}
pass = linked && valid && notExpired
CAEOAS — Use Affordances
When isReadyToSubmit == true, the response includes affordances.submit:
"affordances": {
"checkReadiness": "asc versions check-readiness --version-id v-123",
"listLocalizations": "asc version-localizations list --version-id v-123",
"submit": "asc versions submit --version-id v-123"
}
Always copy affordances.submit directly — never construct the submit command manually.
When isReadyToSubmit == false, affordances.submit is absent.
Typical Workflow
# 1. Find the version in PREPARE_FOR_SUBMISSION
asc versions list --app-id <APP_ID> --output table
# 2. Check readiness (use checkReadiness affordance from step 1 output)
asc versions check-readiness --version-id <VERSION_ID> --pretty
# 3a. Ready → submit using affordances.submit value
asc versions submit --version-id <VERSION_ID>
# 3b. Not ready → diagnose and fix (see Fix Guide below)
Fix Guide
| Failing check | How to fix |
|---|---|
stateCheck fails |
Version is already live or in review — create a new version with asc versions create |
buildCheck.linked == false |
Link a build: asc versions set-build --version-id <id> --build-id <id> |
buildCheck.valid == false |
Build is still processing — wait and re-check, or upload a new build |
buildCheck.notExpired == false |
Build expired — upload a new build with asc builds upload |
pricingCheck fails |
Set up pricing in App Store Connect web UI (no asc command for pricing) |
reviewContactCheck fails |
asc version-review-detail update --version-id <id> --contact-email dev@example.com --contact-phone "+1-555-0100" |
CI Gate Script
#!/bin/bash
set -e
RESULT=$(asc versions check-readiness --version-id "$VERSION_ID")
IS_READY=$(echo "$RESULT" | jq -r '.data[0].isReadyToSubmit')
if [ "$IS_READY" = "true" ]; then
eval "$(echo "$RESULT" | jq -r '.data[0].affordances.submit')"
else
echo "NOT ready. Failing checks:"
echo "$RESULT" | jq '.data[0] | {stateCheck, buildCheck, pricingCheck}'
exit 1
fi
Weekly Installs
3
Repository
tddworks/asc-cli-skillsFirst Seen
1 day ago
Security Audits
Installed on
opencode3
antigravity3
claude-code3
junie3
windsurf3
github-copilot3