mcpField
A
asc-submission-health

asc-submission-health

github.com/rorkai云与 DevOps1.1k8.1k 次安装2 天前更新
代码仓库

关于 asc-submission-health

用于诊断 App Store 版本提交审核的就绪状态并管理现有审核提交的技能。它收集验证证据、分流问题的修复方式,并将就绪版本交回 `asc-release-flow` 执行提交。

主要功能

  1. 01验证版本就绪状态并识别阻塞项
  2. 02将修复分流至 API、网页会话或人工处理
  3. 03查看审核状态与提交历史
  4. 04核实状态并确认后取消提交
  5. 05将就绪版本交回 `asc-release-flow`

适用场景

  1. 01判断版本无法进入审核的原因
  2. 02监控待处理审核并检查过往结果
  3. 03在发布前修复已授权的就绪问题
  4. 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.md
digital-goods.md
readiness-repairs.md

详细介绍

App Store 提交健康状况

使用此技能说明发布为何无法继续,以及如何管理现有审核提交。健康的发布执行流程应交回给 asc-release-flow。

归属边界

此技能负责:

  • 就绪状态验证和阻塞项诊断;
  • 公共 API、Web 会话和手动修复流程的分流;
  • 审核状态和历史记录;
  • 取消和重试决策。

使用 asc-release-flow 进行暂存、上传、发布和提交。切换技能会继续当前任务,并保留已解析的目标、授权和已验证进度;用户无需重新开始工作流。继续执行已获授权的修复,并在状态健康后返回发布流程。仅当修复超出授权范围时,才请求新的授权。

回答顺序

  1. 说明版本已就绪、受阻,还是已在审核中。
  2. 指出每个阻塞项,以及证明该问题的证据。
  3. 区分公共 API 修复、Web 会话操作和手动工作。
  4. 运行确立诊断结论所需的只读检查。对于仅诊断的请求,报告证据并提供一条建议的修复命令,但不要执行该修复。对于已授权的执行,继续处理修复队列,并报告已完成的工作和剩余阻塞项。

确定目标

  • 解析 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

不要仅仅因为审核时间超出预期就取消提交。请先确认状态和用户意图。

判断何时重试

没有专用的重试命令。请按以下顺序操作:

  1. 仅当必须撤回活动提交时才取消。
  2. 修复已确认的阻塞项。
  3. 重新运行 asc validate 和相关产品验证器。
  4. 确认没有活动提交已占用该版本或审核项目。
  5. 将健康的版本和任何保留的 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,并保持相同的健康生命周期。

评论

支持 Markdown