关于 asc-submission-health
用于诊断 App Store 版本提交审核的就绪状态并管理现有审核提交的技能。它收集验证证据、分流问题的修复方式,并将就绪版本交回 `asc-release-flow` 执行提交。
主要功能
- 01验证版本就绪状态并识别阻塞项
- 02将修复分流至 API、网页会话或人工处理
- 03查看审核状态与提交历史
- 04核实状态并确认后取消提交
- 05将就绪版本交回 `asc-release-flow`
适用场景
- 01判断版本无法进入审核的原因
- 02监控待处理审核并检查过往结果
- 03在发布前修复已授权的就绪问题
- 04决定是否取消或重试提交
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rorkai/ app-store-connect-cli-skills --skill asc-submission-health安装后在 Claude Code 中输入/asc-submission-health确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/app-privacy.mddigital-goods.mdreadiness-repairs.md详细介绍
App Store 提交健康状况
使用此技能说明发布为何无法继续,以及如何管理现有审核提交。健康的发布执行流程应交回给 asc-release-flow。
归属边界
此技能负责:
- 就绪状态验证和阻塞项诊断;
- 公共 API、Web 会话和手动修复流程的分流;
- 审核状态和历史记录;
- 取消和重试决策。
使用 asc-release-flow 进行暂存、上传、发布和提交。切换技能会继续当前任务,并保留已解析的目标、授权和已验证进度;用户无需重新开始工作流。继续执行已获授权的修复,并在状态健康后返回发布流程。仅当修复超出授权范围时,才请求新的授权。
回答顺序
- 说明版本已就绪、受阻,还是已在审核中。
- 指出每个阻塞项,以及证明该问题的证据。
- 区分公共 API 修复、Web 会话操作和手动工作。
- 运行确立诊断结论所需的只读检查。对于仅诊断的请求,报告证据并提供一条建议的修复命令,但不要执行该修复。对于已授权的执行,继续处理修复队列,并报告已完成的工作和剩余阻塞项。
确定目标
- 解析
APP_ID、版本字符串或VERSION_ID、BUILD_ID、平台,以及任何已知的SUBMISSION_ID。 - 使用
asc auth login或ASC_*环境变量配置身份验证。 - 仅在仓库测试和隔离验证中使用
ASC_BYPASS_KEYCHAIN=1,不要用于正常的用户会话。 - 确定目标后优先使用 ID;如果应用、版本或产品的解析结果有歧义,则停止。
诊断就绪状态
首先运行标准就绪报告:
asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table
已知版本 ID 时,使用 --version-id "VERSION_ID"。警告必须导致自动化失败时,添加 --strict。
使用面向审核的诊断工具,获取有序说明:
asc review doctor --app "APP_ID" --version "1.2.3" --platform IOS --output table
如果报告指出构建版本或版本存在问题,请收集直接证据:
asc builds info --build-id "BUILD_ID" --output table
# The attached build and submission are in .data.relationships and .included
asc versions view --version-id "VERSION_ID" --include build,appStoreVersionSubmission --output json
对于数字商品,仅运行相关的产品验证器:
asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table
将 asc validate 提供的有序修复计划视为修复队列。每次先修复并验证一类阻塞项,再处理下一类。
分流修复
当阻塞项涉及构建处理、元数据、屏幕截图、审核详情、加密、内容权利、年龄分级、可用性或特定版本的产品元数据时,使用公共 API 命令。
如果诊断发现这些常见阻塞项之一,或首发版本的可用性缺失,请阅读 references/readiness-repairs.md。
仅当 IAP 或订阅验证失败、Apple 要求首次审核时关联产品,或某个特定版本的产品必须加入现有审核提交时,才阅读 references/digital-goods.md。
仅当验证报告 App Privacy 提示,或无法通过公共 API 确认发布状态时,才阅读 references/app-privacy.md。
当验证报告 Game Center 组件或版本存在阻塞项时,将其交由 asc-release-flow 处理,并要求查阅多项目参考文档中的 Prepare every item 部分。不要将 Game Center 交由常规就绪状态或数字商品修复流程处理。
只有在公共 API 无法解决问题时,才使用 Web 会话命令,并说明需要经过身份验证的 Apple Web 会话。如果用户拒绝自动化 Web 会话,请保留手动 App Store Connect 备选方案。
判断版本是否健康
满足以下条件时,版本即可交还给 asc-release-flow:
asc validate没有阻塞问题;- 附加的构建版本为
VALID; - 元数据、屏幕截图、应用信息、审核详情、内容权利、加密、年龄分级、定价和可用性均已处理;
- 相关的
asc validate iap和/或asc validate subscriptions检查没有阻塞问题,且所需的数字商品版本已准备就绪; - 已通过
asc-release-flow的多项提交参考检查任何 Game Center 版本项目; - App Privacy 已确认或发布。
不要仅仅因为某个验证器成功退出,就认为版本已准备就绪。报告仍需通过网页会话或手动检查处理的任何警告。
监控审核
未知提交 ID 时,使用应用范围的状态:
asc review status --app "APP_ID" --version "1.2.3" --platform IOS --output table
有确切提交 ID 或版本 ID 时,使用这些 ID:
asc submit status --id "SUBMISSION_ID" --output table
asc submit status --version-id "VERSION_ID" --output table
使用发布仪表板查看构建和审核的相关信号:
asc status --app "APP_ID" --include builds,appstore,submission,review --output table
若要等待审核结果,请轮询直至状态确定。获批时命令退出码为 0,被拒时为 1,超时时仍待处理则为 7:
asc status --app "APP_ID" --until review-done --timeout 2h --output json
状态 JSON 会在 summary.nextCommands 中列出建议的后续操作,并标明每项操作是否会修改 App Store Connect。将会修改数据的建议视为提案,仍需获得用户授权。
使用历史记录区分当前停滞与先前被拒或已完成的提交:
asc review history --app "APP_ID" --version "1.2.3" --paginate --output table
取消不健康的提交
取消前,先找到确切的活动提交。先预览状态,然后再要求确认:
asc submit status --id "SUBMISSION_ID" --output table
asc submit cancel --id "SUBMISSION_ID" --confirm
按版本查找时,请在现代审核提交查询中包含应用:
asc submit status --version-id "VERSION_ID" --output table
asc submit cancel --version-id "VERSION_ID" --app "APP_ID" --confirm
如果已知确切的审核提交,则可以使用较低层级的等效方式:
asc review submissions-cancel --id "SUBMISSION_ID" --confirm
不要仅仅因为审核时间超出预期就取消提交。请先确认状态和用户意图。
判断何时重试
没有专用的重试命令。请按以下顺序操作:
- 仅当必须撤回活动提交时才取消。
- 修复已确认的阻塞项。
- 重新运行
asc validate和相关产品验证器。 - 确认没有活动提交已占用该版本或审核项目。
- 将健康的版本和任何保留的
SUBMISSION_ID交给asc-release-flow执行提交。重复使用已检查过的READY_FOR_REVIEW草稿;仅当不存在匹配的草稿或活动提交时才创建提交。
常见故障处理路径
| 症状 | 首要证据 | 修复路径 |
|---|---|---|
| 版本状态无效 | asc validate、asc review doctor | 按顺序修复就绪问题 |
| 必须批准出口合规性 | 构建信息和加密声明 | 修复就绪问题 |
| 找到多个应用信息 | asc apps info list --app "APP_ID" | 确定确切的应用信息 ID |
| IAP 或订阅尚未就绪 | 产品验证器 | 数字商品参考 |
| Game Center 组件或版本尚未就绪 | asc validate 诊断信息 | asc-release-flow 多项准备部分 |
| App Privacy 发布状态不明确 | 验证提示 | App Privacy 参考 |
| 审核似乎停滞 | 审核状态和历史记录 | 监控;仅在有证据并获批准时取消 |
防护措施
- 不要使用已移除的
submit-preflight或submit-create快捷方式。 - 不要通过此技能提交;将健康版本交还给
asc-release-flow执行。 - 不要将网页会话自动化视为对外公开的 App Store Connect API 覆盖范围。
- 在确认先前的提交状态和阻塞项已修复之前,不要重试。
- 人工诊断时使用
--output table,自动化时使用 JSON。 - 对于 macOS,请使用
--platform MAC_OS,并保持相同的健康生命周期。