asc-check-readiness

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

asc versions check-readiness

asc versions check-readiness

Pre-flight check that aggregates all App Store submission requirements for a version.
对版本的所有App Store提交要求进行汇总的提交前预检。

Command

命令

bash
asc versions check-readiness --version-id <VERSION_ID> [--pretty]
Runs 6 API checks and returns a
VersionReadiness
report.
bash
asc versions check-readiness --version-id <VERSION_ID> [--pretty]
运行6项API检查并返回一份
VersionReadiness
报告。

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
"isReadyToSubmit": true  → 可安全提交;返回结果中包含affordances.submit
"isReadyToSubmit": false → 有一个或多个必须修复的检查项未通过

Check severity

检查项严重程度

FieldSeverityBlocks
isReadyToSubmit
?
stateCheck
MUST FIXYes — state must be
PREPARE_FOR_SUBMISSION
buildCheck
MUST FIXYes — build must be linked, valid, not expired
pricingCheck
MUST FIXYes — app must have a price schedule configured
reviewContactCheck
SHOULD FIXNo — warning only, submission still proceeds
localizations[].pass
SHOULD FIXNo — Apple may reject post-submit
字段严重程度是否阻碍
isReadyToSubmit
为true?
stateCheck
必须修复是 — 状态必须为
PREPARE_FOR_SUBMISSION
buildCheck
必须修复是 — 必须已关联构建包、构建包有效且未过期
pricingCheck
必须修复是 — 应用必须已配置价格方案
reviewContactCheck
建议修复否 — 仅为警告,仍可提交
localizations[].pass
建议修复否 — Apple可能在提交后拒绝审核

Build check fields

构建包检查字段

json
"buildCheck": {
  "linked": true,
  "valid": true,
  "notExpired": true,
  "buildVersion": "2.1.0 (102)",
  "pass": true
}
pass
=
linked && valid && notExpired
json
"buildCheck": {
  "linked": true,
  "valid": true,
  "notExpired": true,
  "buildVersion": "2.1.0 (102)",
  "pass": true
}
pass
的值为
linked && valid && notExpired
的结果

CAEOAS — Use Affordances

CAEOAS — 使用返回的可用操作

When
isReadyToSubmit == true
, the response includes
affordances.submit
:
json
"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.
isReadyToSubmit == true
时,响应结果中包含
affordances.submit
json
"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"
}
请始终直接复制
affordances.submit
的内容
— 切勿手动构造提交命令。当
isReadyToSubmit == false
时,响应结果中不会包含
affordances.submit

Typical Workflow

典型工作流

bash
undefined
bash
undefined

1. Find the version in PREPARE_FOR_SUBMISSION

1. 找到处于PREPARE_FOR_SUBMISSION状态的版本

asc versions list --app-id <APP_ID> --output table
asc versions list --app-id <APP_ID> --output table

2. Check readiness (use checkReadiness affordance from step 1 output)

2. 检查就绪状态(使用步骤1输出中的checkReadiness可用操作)

asc versions check-readiness --version-id <VERSION_ID> --pretty
asc versions check-readiness --version-id <VERSION_ID> --pretty

3a. Ready → submit using affordances.submit value

3a. 已就绪 → 使用affordances.submit的值提交

asc versions submit --version-id <VERSION_ID>
asc versions submit --version-id <VERSION_ID>

3b. Not ready → diagnose and fix (see Fix Guide below)

3b. 未就绪 → 排查并修复(请参阅下方修复指南)

undefined
undefined

Fix Guide

修复指南

Failing checkHow 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"
未通过的检查项修复方法
stateCheck
未通过
版本已上线或正在审核中 — 使用
asc versions create
创建新版本
buildCheck.linked == false
关联构建包:
asc versions set-build --version-id <id> --build-id <id>
buildCheck.valid == false
构建包仍在处理中 — 等待后重新检查,或上传新的构建包
buildCheck.notExpired == false
构建包已过期 — 使用
asc builds upload
上传新的构建包
pricingCheck
未通过
在App Store Connect网页端设置定价(暂无
asc
命令支持定价设置)
reviewContactCheck
未通过
asc version-review-detail update --version-id <id> --contact-email dev@example.com --contact-phone "+1-555-0100"

CI Gate Script

CI校验关卡脚本

bash
#!/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
bash
#!/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 "未就绪。未通过的检查项:"
  echo "$RESULT" | jq '.data[0] | {stateCheck, buildCheck, pricingCheck}'
  exit 1
fi