asc-release-flow

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Release flow (readiness-first)

发布流程(优先检查就绪状态)

Use this skill when the real question is "Can my app be ready to submit?" and then guide the user through the shortest path to a clean App Store submission, especially for first-time releases.
当用户的核心问题是“我的应用是否可以提交?”时,使用本技能,引导用户通过最短路径完成顺畅的App Store提交,尤其适用于首次发布场景。

Preconditions

前置条件

  • Ensure credentials are set (
    asc auth login
    or
    ASC_*
    env vars).
  • Resolve app ID, version string, and build ID up front.
  • For lower-level or first-time flows, also be ready to resolve
    VERSION_ID
    ,
    SUBMISSION_ID
    ,
    DETAIL_ID
    ,
    GROUP_ID
    ,
    SUB_ID
    ,
    IAP_ID
    , and related resource IDs. Use
    asc-id-resolver
    when needed.
  • Have a metadata directory ready if you plan to use
    asc release stage
    or
    asc release run
    .
  • If you use experimental web-session commands, use a user-owned Apple Account session and treat those commands as optional escape hatches, not the default path.
  • 确保已设置凭据(
    asc auth login
    ASC_*
    环境变量)。
  • 提前确定应用ID、版本字符串和构建ID。
  • 对于底层流程或首次发布流程,还需准备好解析
    VERSION_ID
    SUBMISSION_ID
    DETAIL_ID
    GROUP_ID
    SUB_ID
    IAP_ID
    及相关资源ID。必要时使用
    asc-id-resolver
  • 若计划使用
    asc release stage
    asc release run
    ,需准备好元数据目录。
  • 若使用实验性Web会话命令,请使用用户自有Apple账号会话,并将这些命令视为可选的应急方案,而非默认路径。

How to answer

回答方式

When using this skill, answer readiness questions in this order:
  1. Is the app ready right now, or not yet?
  2. What are the blocking issues?
  3. Which blockers are API-fixable vs web-session-fixable?
  4. What exact command should run next?
Group blockers like this:
  • API-fixable: build validity, metadata, screenshots, review details, content rights, encryption, version/build attachment, IAP readiness, Game Center version and review-submission setup.
  • Web-session-fixable: initial app availability bootstrap, first-review subscription attachment, App Privacy publish state.
  • Manual fallback: first-time IAP selection from the app-version screen when no CLI attach flow exists, or any flow the user does not want to run through experimental web-session commands.
使用本技能时,按以下顺序回答就绪状态相关问题:
  1. 应用现在是否已就绪?
  2. 存在哪些阻塞问题?
  3. 哪些阻塞问题可通过API修复,哪些可通过Web会话修复?
  4. 下一步应执行什么具体命令?
按以下类别归类阻塞问题:
  • API可修复:构建有效性、元数据、截图、审核详情、内容权限、加密设置、版本/构建关联、内购项目就绪状态、Game Center版本及审核提交设置。
  • Web会话可修复:初始应用可用性配置、首次审核时的订阅关联、App Privacy发布状态。
  • 手动 fallback:当没有CLI关联流程时,从应用版本页面手动选择首次内购项目;或用户不愿通过实验性Web会话命令执行的任何流程。

Canonical path

标准流程

1. Fast readiness check

1. 快速就绪检查

Run this first when the user wants the quickest answer to "can I submit now?":
bash
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
This is the fastest high-signal readiness check and prints fix guidance without mutating anything.
当用户想要快速得到“我现在可以提交吗?”的答案时,首先运行以下命令:
bash
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
这是最快的高信号就绪检查,会输出修复指导且不会修改任何内容。

2. Real staging pass without submit

2. 不提交的预发布准备

Run this when the user wants the version prepared in App Store Connect but wants a manual checkpoint before creating a review submission:
bash
asc release stage \
  --app "APP_ID" \
  --version "1.2.3" \
  --build "BUILD_ID" \
  --metadata-dir "./metadata/version/1.2.3" \
  --confirm
Use
--copy-metadata-from "1.2.2"
instead of
--metadata-dir
when you want to carry metadata forward from an existing version.
asc release stage
requires exactly one metadata source and stops before submit.
当用户希望在App Store Connect中准备好版本,但想在创建审核提交前进行手动检查时,运行以下命令:
bash
asc release stage \
  --app "APP_ID" \
  --version "1.2.3" \
  --build "BUILD_ID" \
  --metadata-dir "./metadata/version/1.2.3" \
  --confirm
若要从现有版本继承元数据,可使用
--copy-metadata-from "1.2.2"
替代
--metadata-dir
asc release stage
要求必须指定一个元数据来源,且会在提交前停止。

3. Full-pipeline dry run

3. 全流程试运行

Run this when the user wants one command that approximates the whole release path:
bash
asc release run \
  --app "APP_ID" \
  --version "1.2.3" \
  --build "BUILD_ID" \
  --metadata-dir "./metadata/version/1.2.3" \
  --dry-run \
  --output table
This is the best single-command rehearsal for:
  1. ensuring or creating the version
  2. applying metadata and localizations
  3. attaching the build
  4. running readiness checks
  5. confirming the submission path is coherent
Add
--strict-validate
when you want warnings treated as blockers.
当用户希望用一个命令模拟完整发布路径时,运行以下命令:
bash
asc release run \
  --app "APP_ID" \
  --version "1.2.3" \
  --build "BUILD_ID" \
  --metadata-dir "./metadata/version/1.2.3" \
  --dry-run \
  --output table
这是最佳的单命令预演方式,可用于:
  1. 确保版本存在或创建版本
  2. 应用元数据和本地化设置
  3. 关联构建包
  4. 运行就绪检查
  5. 确认提交路径连贯
若要将警告视为阻塞问题,添加
--strict-validate
参数。

4. Deep API readiness audit

4. 深度API就绪审核

Run this when the user needs a fuller version-level checklist than
submit preflight
:
bash
asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table
Prefer the version string form here so it stays aligned with
asc submit preflight
and
asc release run
. Switch to
VERSION_ID
only for lower-level commands that explicitly require it.
If the app sells digital goods, also run:
bash
asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table
In current asc,
asc validate subscriptions
expands
MISSING_METADATA
into per-subscription diagnostics. Use it to pinpoint missing review screenshots, promotional images, pricing or availability coverage, offer readiness, and app/build evidence before you retry submission or
attach-group
.
When territory coverage is wrong, the newest diagnostics name the exact missing territories instead of only reporting count mismatches. Use
--output json --pretty
when you want machine-readable diagnostics.
当用户需要比
submit preflight
更全面的版本级检查清单时,运行以下命令:
bash
asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table
此处优先使用版本字符串形式,以便与
asc submit preflight
asc release run
保持一致。仅在底层命令明确要求时,才切换为
VERSION_ID
若应用销售数字商品,还需运行:
bash
asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table
在当前asc版本中,
asc validate subscriptions
会将
MISSING_METADATA
展开为每个订阅的诊断信息。可使用该命令精准定位缺失的审核截图、推广图片、定价或可用性覆盖范围、优惠就绪状态以及应用/构建证据,之后再重试提交或
attach-group
操作。
当区域覆盖范围不正确时,最新的诊断信息会明确指出缺失的具体区域,而非仅报告数量不匹配。若需要机器可读的诊断信息,使用
--output json --pretty
参数。

5. Actual submit

5. 正式提交

When the dry run looks clean:
bash
asc release run \
  --app "APP_ID" \
  --version "1.2.3" \
  --build "BUILD_ID" \
  --metadata-dir "./metadata/version/1.2.3" \
  --confirm
当试运行结果正常时:
bash
asc release run \
  --app "APP_ID" \
  --version "1.2.3" \
  --build "BUILD_ID" \
  --metadata-dir "./metadata/version/1.2.3" \
  --confirm

First-time submission blockers

首次提交阻塞问题

1. Initial app availability does not exist yet

1. 初始应用可用性记录不存在

Symptoms:
  • asc pricing availability view --app "APP_ID"
    reports no availability
  • asc pricing availability edit ...
    fails because it only updates existing availability
Check:
bash
asc pricing availability view --app "APP_ID"
Bootstrap the first availability record with the experimental web-session flow:
bash
asc web apps availability create \
  --app "APP_ID" \
  --territory "USA,GBR" \
  --available-in-new-territories true
After bootstrap, use the normal public API command for ongoing updates:
bash
asc pricing availability edit \
  --app "APP_ID" \
  --territory "USA,GBR" \
  --available true \
  --available-in-new-territories true
症状:
  • asc pricing availability view --app "APP_ID"
    显示无可用性信息
  • asc pricing availability edit ...
    执行失败,因为该命令仅能更新现有可用性记录
检查命令:
bash
asc pricing availability view --app "APP_ID"
使用实验性Web会话流程初始化首个可用性记录:
bash
asc web apps availability create \
  --app "APP_ID" \
  --territory "USA,GBR" \
  --available-in-new-territories true
初始化完成后,使用常规公开API命令进行后续更新:
bash
asc pricing availability edit \
  --app "APP_ID" \
  --territory "USA,GBR" \
  --available true \
  --available-in-new-territories true

2. Subscriptions are READY_TO_SUBMIT but not attached to first review

2. 订阅状态为READY_TO_SUBMIT但未关联至首次审核

For apps with subscriptions, check readiness explicitly:
bash
asc validate subscriptions --app "APP_ID" --output table
If the validator shows
MISSING_METADATA
, read the row-level diagnostics literally. The newest CLI surfaces missing promotional images, review screenshots, pricing or availability coverage, offer readiness, and app/build evidence in one matrix, which is the quickest way to understand why first-review attach still fails.
List current first-review subscription state:
bash
asc web review subscriptions list --app "APP_ID"
If the app is going through its first review and the group needs attaching:
bash
asc web review subscriptions attach-group \
  --app "APP_ID" \
  --group-id "GROUP_ID" \
  --confirm
If
attach-group
still returns
MISSING_METADATA
, fix the validator-reported prerequisites first. The most common misses are broad pricing coverage and a subscription promotional image.
For one subscription instead of a whole group:
bash
asc web review subscriptions attach \
  --app "APP_ID" \
  --subscription-id "SUB_ID" \
  --confirm
For later reviews, use the normal submission path:
bash
asc subscriptions review submit --subscription-id "SUB_ID" --confirm
If review artifacts are missing, upload them before submission:
bash
asc subscriptions review screenshots create --subscription-id "SUB_ID" --file "./screenshot.png"
asc subscriptions images create --subscription-id "SUB_ID" --file "./image.png"
Also make sure the app’s privacy policy URL is populated when the app sells subscriptions.
对于包含订阅的应用,需明确检查就绪状态:
bash
asc validate subscriptions --app "APP_ID" --output table
若验证工具显示
MISSING_METADATA
,请严格按照行级诊断信息处理。最新版CLI会在一个矩阵中展示缺失的推广图片、审核截图、定价或可用性覆盖范围、优惠就绪状态以及应用/构建证据,这是快速理解首次审核关联失败原因的最佳方式。
查看当前首次审核的订阅状态:
bash
asc web review subscriptions list --app "APP_ID"
若应用正在进行首次审核且需要关联订阅组:
bash
asc web review subscriptions attach-group \
  --app "APP_ID" \
  --group-id "GROUP_ID" \
  --confirm
attach-group
仍返回
MISSING_METADATA
,请先修复验证工具报告的前置条件。最常见的缺失项是广泛的定价覆盖范围和订阅推广图片。
若仅需关联单个订阅而非整个组:
bash
asc web review subscriptions attach \
  --app "APP_ID" \
  --subscription-id "SUB_ID" \
  --confirm
对于后续审核,使用常规提交路径:
bash
asc subscriptions review submit --subscription-id "SUB_ID" --confirm
若缺失审核素材,请在提交前上传:
bash
asc subscriptions review screenshots create --subscription-id "SUB_ID" --file "./screenshot.png"
asc subscriptions images create --subscription-id "SUB_ID" --file "./image.png"
另外,当应用销售订阅时,确保已填写应用的隐私政策URL。

3. In-App Purchases need review readiness or first-version inclusion

3. 内购项目需完成审核就绪状态或首次版本关联

For apps with one-time purchases, consumables, or non-consumables, check readiness explicitly:
bash
asc validate iap --app "APP_ID" --output table
If the IAP is missing its App Review screenshot:
bash
asc iap review-screenshots create --iap-id "IAP_ID" --file "./review.png"
For IAPs on a published app, submit them directly:
bash
asc iap submit --iap-id "IAP_ID" --confirm
If this is the first IAP for the app, or the first time adding a new IAP type, Apple requires it to be included with a new app version. Current
asc
commands can validate and submit published-app IAPs, but there is no equivalent first-review attach flow like the subscription web commands yet. In that case:
  • prepare the IAP with
    asc validate iap
    , pricing, localization, and review screenshot data first
  • then select the IAP from the app version’s “In-App Purchases and Subscriptions” section in App Store Connect before submitting the app version
Also make sure the app’s privacy policy URL is populated when the app sells IAPs.
对于包含一次性购买、消耗品或非消耗品的应用,需明确检查就绪状态:
bash
asc validate iap --app "APP_ID" --output table
若内购项目缺失App Review截图:
bash
asc iap review-screenshots create --iap-id "IAP_ID" --file "./review.png"
对于已发布应用的内购项目,可直接提交:
bash
asc iap submit --iap-id "IAP_ID" --confirm
若这是应用的首个内购项目,或首次添加新类型的内购项目,Apple要求其必须与新应用版本一同提交。当前asc命令可验证并提交已发布应用的内购项目,但尚无类似订阅的Web命令用于首次审核关联流程。这种情况下:
  • 先使用
    asc validate iap
    、定价、本地化和审核截图数据准备好内购项目
  • 然后在提交应用版本前,于App Store Connect的应用版本“内购项目与订阅”部分选择该内购项目
另外,当应用销售内购项目时,确保已填写应用的隐私政策URL。

4. Game Center is enabled but the app version or review submission is incomplete

4. Game Center已启用但应用版本或审核提交不完整

If the app uses Game Center, make sure the App Store version is Game Center-enabled:
bash
asc game-center app-versions list --app "APP_ID"
asc game-center app-versions create --app-store-version-id "VERSION_ID"
If you are adding Game Center components for the first time, include them in the same submission as the app version. Resolve component version IDs first:
bash
asc game-center achievements v2 versions list --achievement-id "ACH_ID"
asc game-center leaderboards v2 versions list --leaderboard-id "LEADERBOARD_ID"
asc game-center challenges versions list --challenge-id "CHALLENGE_ID"
asc game-center activities versions list --activity-id "ACTIVITY_ID"
Then use the review-submission flow so you can add the app version and the Game Center component versions to the same submission:
bash
asc review submissions-create --app "APP_ID" --platform IOS
asc review items-add --submission "SUBMISSION_ID" --item-type appStoreVersions --item-id "VERSION_ID"
asc review items-add --submission "SUBMISSION_ID" --item-type gameCenterLeaderboardVersions --item-id "GC_LEADERBOARD_VERSION_ID"
asc review submissions-submit --id "SUBMISSION_ID" --confirm
asc review items-add
also supports
gameCenterAchievementVersions
,
gameCenterActivityVersions
,
gameCenterChallengeVersions
, and
gameCenterLeaderboardSetVersions
.
If Game Center component versions need to ship with the app version, prefer the explicit
asc review submissions-*
flow over
asc release run --confirm
, because you need a chance to add all submission items before final submit.
若应用使用Game Center,确保App Store版本已启用Game Center:
bash
asc game-center app-versions list --app "APP_ID"
asc game-center app-versions create --app-store-version-id "VERSION_ID"
若首次添加Game Center组件,需将其与应用版本一同提交。先解析组件版本ID:
bash
asc game-center achievements v2 versions list --achievement-id "ACH_ID"
asc game-center leaderboards v2 versions list --leaderboard-id "LEADERBOARD_ID"
asc game-center challenges versions list --challenge-id "CHALLENGE_ID"
asc game-center activities versions list --activity-id "ACTIVITY_ID"
然后使用审核提交流程,将应用版本和Game Center组件版本添加至同一提交中:
bash
asc review submissions-create --app "APP_ID" --platform IOS
asc review items-add --submission "SUBMISSION_ID" --item-type appStoreVersions --item-id "VERSION_ID"
asc review items-add --submission "SUBMISSION_ID" --item-type gameCenterLeaderboardVersions --item-id "GC_LEADERBOARD_VERSION_ID"
asc review submissions-submit --id "SUBMISSION_ID" --confirm
asc review items-add
还支持
gameCenterAchievementVersions
gameCenterActivityVersions
gameCenterChallengeVersions
gameCenterLeaderboardSetVersions
若Game Center组件版本需随应用版本一同发布,优先使用明确的
asc review submissions-*
流程,而非
asc release run --confirm
,因为你需要在最终提交前添加所有提交项。

5. App Privacy is still unpublished

5. App Privacy仍未发布

The public API can warn about App Privacy readiness but cannot fully verify publish state.
If
asc submit preflight
,
asc validate
, or
asc release run
surfaces an App Privacy advisory, reconcile it with:
bash
asc web privacy pull --app "APP_ID" --out "./privacy.json"
asc web privacy plan --app "APP_ID" --file "./privacy.json"
asc web privacy apply --app "APP_ID" --file "./privacy.json"
asc web privacy publish --app "APP_ID" --confirm
If the user does not want the experimental web-session flow, confirm App Privacy manually in App Store Connect:
text
https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy
公开API可警告App Privacy的就绪状态,但无法完全验证其发布状态。
asc submit preflight
asc validate
asc release run
提示App Privacy相关建议,请通过以下命令处理:
bash
asc web privacy pull --app "APP_ID" --out "./privacy.json"
asc web privacy plan --app "APP_ID" --file "./privacy.json"
asc web privacy apply --app "APP_ID" --file "./privacy.json"
asc web privacy publish --app "APP_ID" --confirm
若用户不愿使用实验性Web会话流程,请在App Store Connect中手动确认App Privacy状态:
text
https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy

6. Review details are incomplete

6. 审核详情不完整

Check whether the version already has review details:
bash
asc review details-for-version --version-id "VERSION_ID"
If needed, create or update them:
bash
asc review details-create \
  --version-id "VERSION_ID" \
  --contact-first-name "Dev" \
  --contact-last-name "Support" \
  --contact-email "dev@example.com" \
  --contact-phone "+1 555 0100" \
  --notes "Explain the reviewer access path here."
bash
asc review details-update \
  --id "DETAIL_ID" \
  --notes "Updated reviewer instructions."
Only set
--demo-account-required=true
when App Review truly needs demo credentials.
检查版本是否已包含审核详情:
bash
asc review details-for-version --version-id "VERSION_ID"
若需要,创建或更新审核详情:
bash
asc review details-create \
  --version-id "VERSION_ID" \
  --contact-first-name "Dev" \
  --contact-last-name "Support" \
  --contact-email "dev@example.com" \
  --contact-phone "+1 555 0100" \
  --notes "在此说明审核人员的访问路径。"
bash
asc review details-update \
  --id "DETAIL_ID" \
  --notes "更新后的审核人员说明。"
仅当App Review确实需要演示凭据时,才设置
--demo-account-required=true

Practical readiness checklist

实用就绪检查清单

An app is effectively ready to submit when:
  • asc submit preflight --app "APP_ID" --version "VERSION"
    reports no blocking issues
  • asc validate --app "APP_ID" --version "VERSION"
    is clean or only contains understood non-blocking warnings
  • asc release stage --confirm
    successfully prepared the target version when you want a real pre-submit checkpoint
  • asc release run ... --dry-run
    produces the expected plan
  • the build is
    VALID
    and attached to the target version
  • metadata, screenshots, and localizations are complete
  • content rights and encryption requirements are resolved
  • review details are present
  • app availability exists
  • if the app has IAPs or subscriptions, the privacy policy URL is present
  • if the app has IAPs, they have localization/pricing/review screenshots and first-time IAPs are selected with the app version
  • subscriptions, if any, are attached for first review or already submitted through the supported review path
  • if the app uses Game Center, the app version is Game Center-enabled and any required Game Center component versions are in the same review submission
  • any App Privacy advisory has been resolved through
    asc web privacy ...
    or manual confirmation
当满足以下条件时,应用即可视为已准备好提交:
  • asc submit preflight --app "APP_ID" --version "VERSION"
    无阻塞问题
  • asc validate --app "APP_ID" --version "VERSION"
    无问题,或仅包含已知的非阻塞警告
  • 若需要预提交检查点,
    asc release stage --confirm
    已成功准备好目标版本
  • asc release run ... --dry-run
    生成符合预期的计划
  • 构建包状态为
    VALID
    且已关联至目标版本
  • 元数据、截图和本地化内容完整
  • 内容权限和加密要求已解决
  • 审核详情已填写
  • 应用可用性记录已存在
  • 若应用包含内购项目或订阅,已填写隐私政策URL
  • 若应用包含内购项目,已完成本地化/定价/审核截图设置,且首次内购项目已与应用版本关联
  • 若应用包含订阅,已关联至首次审核或已通过支持的审核路径提交
  • 若应用使用Game Center,应用版本已启用Game Center,且所有必需的Game Center组件版本已添加至同一审核提交中
  • 所有App Privacy相关建议已通过
    asc web privacy ...
    命令或手动确认解决

Lower-level fallback

底层 fallback 流程

Use the lower-level flow only when the user needs explicit control over each step:
bash
asc versions attach-build --version-id "VERSION_ID" --build "BUILD_ID"
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm
asc submit status --version-id "VERSION_ID"
仅当用户需要对每个步骤进行明确控制时,才使用底层流程:
bash
asc versions attach-build --version-id "VERSION_ID" --build "BUILD_ID"
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm
asc submit status --version-id "VERSION_ID"

or, if you captured the review submission ID:

或者,若已获取审核提交ID:

asc submit status --id "SUBMISSION_ID"

If the submission needs multiple review items, such as Game Center component versions, use the review-submission API directly instead:

```bash
asc review submissions-create --app "APP_ID" --platform IOS
asc review items-add --submission "SUBMISSION_ID" --item-type appStoreVersions --item-id "VERSION_ID"
asc review items-add --submission "SUBMISSION_ID" --item-type gameCenterChallengeVersions --item-id "GC_CHALLENGE_VERSION_ID"
asc review submissions-submit --id "SUBMISSION_ID" --confirm
asc submit status --id "SUBMISSION_ID"

若提交需要多个审核项(如Game Center组件版本),请直接使用审核提交API:

```bash
asc review submissions-create --app "APP_ID" --platform IOS
asc review items-add --submission "SUBMISSION_ID" --item-type appStoreVersions --item-id "VERSION_ID"
asc review items-add --submission "SUBMISSION_ID" --item-type gameCenterChallengeVersions --item-id "GC_CHALLENGE_VERSION_ID"
asc review submissions-submit --id "SUBMISSION_ID" --confirm

Platform notes

平台说明

  • Use
    --platform MAC_OS
    ,
    TV_OS
    , or
    VISION_OS
    as needed.
  • For macOS, upload the
    .pkg
    separately, then use the same readiness and submission flow.
  • asc publish testflight
    is still the fastest TestFlight shortcut, but for App Store readiness prefer
    asc submit preflight
    ,
    asc release stage
    , and
    asc release run
    .
  • 根据需要使用
    --platform MAC_OS
    TV_OS
    VISION_OS
    参数。
  • 对于macOS,需单独上传
    .pkg
    文件,然后使用相同的就绪检查和提交流程。
  • asc publish testflight
    仍是最快的TestFlight快捷命令,但针对App Store就绪检查,优先使用
    asc submit preflight
    asc release stage
    asc release run

Notes

注意事项

  • asc release stage --confirm
    is the safest one-command way to prepare a version without submitting it.
  • asc release run --dry-run
    is the closest thing to a one-command answer for "will this full release flow work?"
  • asc submit preflight
    is the fastest first pass.
  • asc validate
    is the deeper API-side checklist for version readiness.
  • asc validate subscriptions
    now exposes much richer per-subscription diagnostics for
    MISSING_METADATA
    readiness failures.
  • Web-session commands are experimental and should be presented as optional escape hatches when the public API cannot complete the first-time flow.
  • First-time app-availability bootstrap now goes through the experimental
    asc web apps availability create
    flow or App Store Connect itself.
  • First-review subscriptions have a concrete CLI attach path; first-review IAP selection still may require the App Store Connect version UI.
  • Game Center can require explicit review-submission item management when components must ride with the app version.
  • If the user asks "why did submission fail?" map the failure back into the three buckets above: API-fixable, web-session-fixable, or manual fallback.
  • asc release stage --confirm
    是无需提交即可准备版本的最安全单命令方式。
  • asc release run --dry-run
    是最接近单命令回答“完整发布流程是否可行?”的方式。
  • asc submit preflight
    是最快的首次检查方式。
  • asc validate
    是更深入的API端版本就绪检查清单。
  • asc validate subscriptions
    现在针对
    MISSING_METADATA
    就绪失败提供了更丰富的每个订阅诊断信息。
  • Web会话命令为实验性命令,应作为公开API无法完成首次流程时的可选应急方案。
  • 首次应用可用性初始化需通过实验性
    asc web apps availability create
    流程或App Store Connect完成。
  • 首次审核的订阅有明确的CLI关联路径;首次审核的内购项目选择可能仍需使用App Store Connect版本UI。
  • 当Game Center组件必须随应用版本一同发布时,可能需要明确的审核提交项管理。
  • 若用户询问“提交失败的原因是什么?”,请将失败原因归类为上述三类:API可修复、Web会话可修复或手动fallback。