关于 asc-check-readiness
asc-check-readiness 是用于检查 App Store 版本是否满足主要提交要求的命令行技能。它区分阻断问题与警告,并在预检通过时提供提交命令。
主要功能
- 01检查版本状态、构建、定价和审核信息
- 02区分阻断失败与警告
- 03返回就绪报告和提交操作指引
- 04列出检查失败的常见修复方法
适用场景
- 01提交 App Store 版本前进行检查
- 02在 CI 脚本中设置提交门槛
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-check-readiness安装后在 Claude Code 中输入/asc-check-readiness确认已加载。
详细介绍
asc versions check-readiness
提交 App Store 前的检查,用于汇总某个版本的所有提交要求。
命令
asc versions check-readiness --version-id <VERSION_ID> [--pretty]
运行 6 项 API 检查并返回 VersionReadiness 报告。
读取输出
顶层决策字段
"isReadyToSubmit": true → safe to submit; affordances.submit is present
"isReadyToSubmit": false → one or more MUST FIX checks failed
检查严重程度
| 字段 | 严重程度 | 是否阻止 isReadyToSubmit? |
|---|---|---|
stateCheck | 必须修复 | 是 — 状态必须为 PREPARE_FOR_SUBMISSION |
buildCheck | 必须修复 | 是 — 必须关联构建版本,且构建版本有效、未过期 |
pricingCheck | 必须修复 | 是 — 必须为 App 配置价格计划 |
reviewContactCheck | 建议修复 | 否 — 仅发出警告,提交仍会继续 |
localizations[].pass | 建议修复 | 否 — Apple 可能在提交后拒绝 |
就绪状态是预检查结果,不代表 Apple 的最终决定。 将版本添加到提交时,Apple 会运行更多检查,包括每种所需设备的截图尺寸(例如 iPad 12.9")、内容权利声明以及已发布的 App 隐私问答;check-readiness 无法检查这些内容。因此,即使 isReadyToSubmit: true,提交时仍可能被拒绝。发生这种情况时,asc versions submit / asc review-submissions items add 会逐行输出 Apple 拒绝的理由(Apple refused the review submission: … - <reason>);请将每条理由转达为需要修复的问题。参见 submit-with-products.md。
构建检查字段
"buildCheck": {
"linked": true,
"valid": true,
"notExpired": true,
"buildVersion": "2.1.0 (102)",
"pass": true
}
pass = linked && valid && notExpired
CAEOAS — 使用方式
当 isReadyToSubmit == true 时,响应中会包含 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"
}
始终直接复制 affordances.submit — 切勿手动构造提交命令。
当 isReadyToSubmit == false 时,不会提供 affordances.submit。
典型工作流
# 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)
修复指南
| 检查失败项 | 修复方法 |
|---|---|
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 失败 | 先运行 asc apps price-points list --app-id <id>,然后运行 asc apps prices set --app-id <id> --base-territory USA --price-point-id <id>(0.0 = 免费) |
reviewContactCheck 失败 | asc version-review-detail update --version-id <id> --contact-email [email protected] --contact-phone "+1-555-0100" |
CI 门禁脚本
#!/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
评论
支持 Markdown