asc-submission-health

asc-submission-health

熱門

診斷 App Store 提交封鎖問題,並使用 asc 操作審查健康狀態,包括就緒驗證、修復路由、狀態監控、取消與重試決策。當驗證失敗、版本處於無效狀態、審查狀態不明或卡住、或需要修復並重試失敗的提交時使用。關於暫存、上傳、發布與提交執行,請使用 asc-release-flow。

934星標
49分支
更新於 2026/7/21
SKILL.md
唯讀
名稱
asc-submission-health
描述

診斷 App Store 提交封鎖問題,並使用 asc 操作審查健康狀態,包括就緒驗證、修復路由、狀態監控、取消與重試決策。當驗證失敗、版本處於無效狀態、審查狀態不明或卡住、或需要修復並重試失敗的提交時使用。關於暫存、上傳、發布與提交執行,請使用 asc-release-flow。

App Store 提交健康狀態

使用此技能來解釋為何發布無法繼續,以及管理現有的審查提交。將健康的發布執行交回給 asc-release-flow

職責邊界

此技能負責:

  • 就緒驗證與封鎖診斷;
  • 公開 API、網頁工作階段與手動修復路由;
  • 審查狀態與歷史記錄;
  • 取消與重試決策。

請勿從此技能進行暫存、上傳、發布或提交健康的發布。

回答順序

  1. 說明版本是就緒、被封鎖,還是已在審查中。
  2. 列出每個封鎖項目及其證據。
  3. 區分公開 API 修復與網頁工作階段及手動工作。
  4. 給出一個下一步指令。不要傾倒整個修復目錄。

確認目標

  • 解析 APP_ID、版本字串或 VERSION_IDBUILD_ID、平台,以及任何已知的 SUBMISSION_ID
  • 使用 asc auth loginASC_* 環境變數設定驗證。
  • 僅在儲存庫測試與獨立驗證時使用 ASC_BYPASS_KEYCHAIN=1,而非一般使用者工作階段。
  • 一旦目標解析完成,優先使用 ID;當應用程式、版本或產品解析不明確時停止。

診斷就緒狀態

首先執行標準的就緒報告:

asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table

當已知時使用 --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
asc versions view --version-id "VERSION_ID" --include-build --include-submission --output table

對於數位商品,僅執行相關的產品驗證器:

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 隱私權建議或無法透過公開 API 確認發布狀態時,閱讀 references/app-privacy.md

當驗證報告 Game Center 元件或版本封鎖時,將其交給 asc-release-flow 並要求多項目參考的 Prepare every item 章節。不要將 Game Center 路由到一般就緒或數位商品修復。

僅在公開 API 無法涵蓋的缺口時使用網頁工作階段指令,並說明需要已驗證的 Apple 網頁工作階段。當使用者拒絕網頁工作階段自動化時,保留手動的 App Store Connect 備用方案。

判斷版本是否健康

當以下條件滿足時,版本即可返回 asc-release-flow

  • asc validate 沒有封鎖問題;
  • 附加的建置狀態為 VALID
  • 中繼資料、截圖、應用程式資訊、審查詳細資料、內容權利、加密、年齡分級、定價與可用性已解決;
  • 相關的 asc validate iap 和/或 asc validate subscriptions 檢查沒有封鎖問題,且所需的數位商品版本已準備就緒;
  • 任何 Game Center 版本項目已透過 asc-release-flow 的多項目提交參考檢查過;
  • App 隱私權已確認或已發布。

不要僅因為一個驗證器成功退出就稱版本就緒。報告任何仍需要網頁工作階段或手動檢查的警告。

監控審查

當提交 ID 未知時,使用應用程式範圍的狀態:

asc review status --app "APP_ID" --version "1.2.3" --platform IOS --output table

當可用時,使用確切的提交或版本 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

使用歷史記錄來區分當前的停滯與先前被拒絕或完成的提交:

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 隱私權發布狀態不明確 驗證建議 App 隱私權參考
審查似乎卡住 審查狀態加上歷史記錄 監控;僅在有證據與核准時取消

護欄

  • 不要使用已移除的 submit-preflightsubmit-create 捷徑。
  • 不要從此技能提交;將健康執行返回給 asc-release-flow
  • 不要將網頁工作階段自動化視為公開 App Store Connect API 的涵蓋範圍。
  • 在確認先前的提交狀態與封鎖修復之前,不要重試。
  • 使用 --output table 進行人類診斷,使用 JSON 進行自動化。
  • 對於 macOS,使用 --platform MAC_OS,同時保持相同的健康生命週期。