其他
用 asc 编排 App Store 发布:从暂存版本…
当需要把已批准的发布计划通过 asc 推进到 App Store 审核,包括暂存元数据并附加构建、上传 IPA/本地构建、提交已准备版本或多项目提交时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 39/100 ×0.15
适用场景
用 asc 编排 App Store 发特定
解决思路
- 将任务范围限定为 App Store 发布编排;Game Center item preparation 留在本技能;其他验证阻塞、卡住的提交、取消和重试决策交给 asc-submission-health。
- 明确本技能负责:暂存 metadata 并附加 build;发布 IPA 或本地构建;提交已准备的 version;组装 multi-item review submission。
- Game Center item preparation 或 attachment blockers 使用 references/multi-item-submissions.md#prepare-every-item;只有在 app version 已 staged 且选择 multi-item lane 后,才使用该 reference 的 assembly 和 submission 部分。
- 其他 validation blockers、stuck submission、cancellation 或 retry decisions 切换到 asc-submission-health。
- 在当前任务内切换技能,保留已解析的目标、授权和已验证进度;失败的 gate 阻塞依赖的 mutations,但不阻塞诊断或独立的已授权工作。
- 继续已授权的修复并恢复本流程;只有当修复超出约定范围时才请求新授权。
- 解析 APP_ID、version string、需要的 VERSION_ID,以及已存在 build 时的 BUILD_ID。
- 用 asc auth login 或 ASC_* 环境变量配置认证。
- 确认目标 platform;除非 app 面向其他平台,否则使用 IOS。
- 当工作流应用 metadata 时,将 canonical metadata 放在 ./metadata。
- 在运行会变更状态的高层命令前要求 dry run;提交时要求 --confirm。
- 按意图选择 release lane:准备 metadata 并附加已有 build 但不提交,使用 asc release stage。
- 提交已准备的 version,使用 asc review submit。
- 上传 IPA 或本地构建并可选提交,使用 asc publish appstore。
- 需要随 app version 提交 IAP、subscription 或 Game Center version items 时,使用更低层的 asc review submission commands。
- 一旦某个 lane 已创建 review submission,就不要混用 lane;先检查现有 submission,再通过匹配的 lower-level commands 继续。
- 对已附加目标 build 的 version 运行 readiness gate;对于 staging lane,先完成 Stage an existing build;asc release stage 会附加 build 并运行 validation,之后可评估该 gate。
- 不要把 staging 前预期的 “build not attached” 结果路由到 asc-submission-health。
- 任何提交前先验证:asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table。
- 当 warnings 必须阻止自动化时使用 strict mode:asc validate --app "APP_ID" --version "1.2.3" --platform IOS --strict --output table。
- Digital goods 是硬 gate;如果发布包含 IAP 或 subscription,停止并在 asc-submission-health 中运行相关 product checks;只有这些检查无阻塞且目标 product versions 已准备好后,才恢复本流程。
- 对 Game Center items,只完成 Prepare every item,然后返回本流程;readiness 期间不要组装或提交 multi-item review submission。
- 如果 app validation 报告 Game Center item blocker,停止并使用 preparation section。
- 如果唯一 blocker 是 staging lane 中未附加的 build,继续到 staging section。
- 对其他任何 blocker,暂停依赖的 release actions 并使用 asc-submission-health;在已授权修复通过 validation 后恢复。
- 暂存已有 build:使用 asc release stage 在更改 version 前验证所选 build 属于该 app,应用或复制 metadata,附加 build,并运行 validation,且不创建 review submission。
- 预览 metadata 驱动的 staging:asc release stage --app "APP_ID" --version "1.2.3" --build-id "BUILD_ID" --metadata-dir "./metadata/version/1.2.3" --dry-run --output table。
- 应用已审查的计划:asc release stage --app "APP_ID" --version "1.2.3" --build-id "BUILD_ID" --metadata-dir "./metadata/version/1.2.3" --confirm。
- 当沿用 localization metadata 时,用 --copy-metadata-from "1.2.2" 代替 --metadata-dir。
- 当 warnings 应使 stage 失败时,添加 --strict-validate。
- 如果 metadata plan 包含 deletes,dry run 和 confirmed run 都需要 --allow-deletes;先审查这些 deletes,该 flag 还会在本地缺少 locale 时禁用回退到现有 locale。
- 当发布包含 routing app coverage 时,使用 --routing-coverage-file "./coverage.geojson";这个实验性步骤会在 mutation 前验证 GeoJSON,并在 readiness checks 前 stage 它。
- structured output 在 steps[] 开头包含 validate_build step;应按 name 匹配步骤,而不是按 array position。
- 提交已准备 version:在 metadata、review details、availability、build processing 和 product readiness 都已解决后使用 asc review submit。
- 预览提交:asc review submit --app "APP_ID" --version "1.2.3" --build-id "BUILD_ID" --dry-run --output table。
- 确认提交:asc review submit --app "APP_ID" --version "1.2.3" --build-id "BUILD_ID" --confirm。
- 当已知确切 version ID 时,用 --version-id "VERSION_ID" 代替 --version。
- --build-id 总是必需,且必须标识目标 build。
- 上传或构建后发布:当发布从 IPA 或本地 Xcode project/workspace 开始时,使用 asc publish appstore。
- 预览 IPA 上传和提交:asc publish appstore --app "APP_ID" --ipa "./App.ipa" --version "1.2.3" --submit --dry-run --output table。
- 审查计划后运行:asc publish appstore --app "APP_ID" --ipa "./App.ipa" --version "1.2.3" --submit --wait --confirm。
- local-build 模式:提供 --workspace 或 --project 与 --scheme,而不是 --ipa。
- 当 publish 命令应在确保 version 后应用 canonical version metadata 时,使用 --metadata-dir。
- 当用户只想要上传和附加而不提交时,省略 --submit。
- 当 app version 必须随 versioned IAP、subscription、subscription-group 或 Game Center items 一起发布时,阅读 references/multi-item-submissions.md。
- 只添加用户已解决并检查过的 items。
- 提交后 handoff 报告:app、version、platform、build 和 submission IDs。
- 报告运行了哪个 lane 以及是否完成。
- 报告在用户授权下执行的 mutations。
- 报告用于监控结果 submission 的确切命令。
- 使用 asc-submission-health 进行 monitoring、cancellation、rejection diagnosis 或 retry decisions。
- 不要使用已移除的 submit-preflight、submit-create 或 release-run 快捷方式。
- 在 dry-run plan 与请求的 release 匹配前,不要添加 --confirm。
- 当 version 已存在一个 review submission 时,不要创建第二个。
- 不要把 validation failure 变成 partial release;在失败的 gate 处停止。
- 在自动化中包装命令时,保持 data 在 stdout、diagnostics 在 stderr。
适用边界 · 注意事项
- 主要任务是诊断验证阻塞、处理卡住的提交、取消、拒绝诊断或重试决策时,不适用;应改用 asc-submission-health。
- 发布包含 IAP/订阅且需要产品侧检查时,本技能不负责这些检查;应先在 asc-submission-health 完成相关产品检查并确认无阻塞。
- 没有已批准发布计划、未解析目标/授权、未配置 asc 认证,或修复超出约定授权范围时,不适用。