asc-check-readiness について
asc-check-readinessは、App Storeのバージョンが主要な提出要件を満たすか確認するコマンドラインスキルです。提出を妨げる問題と警告を分けて示し、事前チェックに通ると提出コマンドを提示します。
主な機能
- 01バージョン状態、ビルド、価格、審査情報の確認
- 02提出を妨げる失敗と警告の区別
- 03準備状況レポートと提出操作の提示
- 04チェック失敗の一般的な修正方法の表示
活用シーン
- 01App Storeへのバージョン提出前の確認
- 02CIスクリプトでの提出判定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-check-readinessインストール後、Claude Code で/asc-check-readinessを入力して読み込まれたか確認します。
詳細
asc versions check-readiness
バージョンの App Store 提出要件を集約する、提出前のチェックです。
コマンド
asc versions check-readiness --version-id <VERSION_ID> [--pretty]
6 つの API チェックを実行し、VersionReadiness レポートを返します。
出力の読み方
トップレベルの判定フィールド
"isReadyToSubmit": true → safe to submit; affordances.submit is present
"isReadyToSubmit": false → one or more MUST FIX checks failed
チェックの重大度
| フィールド | 重大度 | isReadyToSubmit をブロックするか |
|---|---|---|
stateCheck | 要修正 | はい — 状態が PREPARE_FOR_SUBMISSION である必要があります |
buildCheck | 要修正 | はい — ビルドがリンク済みで、有効かつ期限切れでない必要があります |
pricingCheck | 要修正 | はい — アプリに価格スケジュールが設定されている必要があります |
reviewContactCheck | 修正推奨 | いいえ — 警告のみで、提出は続行されます |
localizations[].pass | 修正推奨 | いいえ — Apple が提出後に却下する場合があります |
準備状況チェックは事前チェックであり、Apple の判定ではありません。 バージョンを提出に追加すると、Apple はさらに多くの項目をチェックします。たとえば、必要な各デバイスのスクリーンショットサイズ(iPad 12.9" など)、コンテンツ権利の申告、公開済みの App Privacy の回答などです。これらは check-readiness では確認できません。そのため、isReadyToSubmit: true でも提出時に拒否される場合があります。その場合、asc versions submit / asc review-submissions items add は Apple の理由を 1 行ずつ出力します(Apple refused the review submission: … - <reason>)。それぞれを修正項目として伝えてください。submit-with-products.md を参照してください。
ビルドチェックのフィールド
"buildCheck": {
"linked": true,
"valid": true,
"notExpired": true,
"buildVersion": "2.1.0 (102)",
"pass": true
}
pass = linked && valid && notExpired
CAEOAS — 使用可能な操作
isReadyToSubmit == true の場合、レスポンスには affordances.submit が含まれます。
"affordances": {
"checkReadiness": "asc versions check-readiness --version-id v-123",
"listLocalizations": "asc version-localizations list --version-id v-123",
"submit": "asc versions submit --version-id v-123"
}
必ず affordances.submit をそのままコピーしてください — 提出コマンドを手動で組み立てないでください。
isReadyToSubmit == false の場合、affordances.submit は存在しません。
一般的なワークフロー
# 1. Find the version in PREPARE_FOR_SUBMISSION
asc versions list --app-id <APP_ID> --output table
# 2. Check readiness (use checkReadiness affordance from step 1 output)
asc versions check-readiness --version-id <VERSION_ID> --pretty
# 3a. Ready → submit using affordances.submit value
asc versions submit --version-id <VERSION_ID>
# 3b. Not ready → diagnose and fix (see Fix Guide below)
修正ガイド
| 失敗したチェック | 修正方法 |
|---|---|
stateCheck が失敗 | バージョンはすでに公開中または審査中です — asc versions create で新しいバージョンを作成してください |
buildCheck.linked == false | ビルドをリンクします:asc versions set-build --version-id <id> --build-id <id> |
buildCheck.valid == false | ビルドはまだ処理中です — 待ってから再チェックするか、新しいビルドをアップロードしてください |
buildCheck.notExpired == false | ビルドの有効期限が切れています — asc builds upload で新しいビルドをアップロードしてください |
pricingCheck が失敗 | asc apps price-points list --app-id <id> の後、asc apps prices set --app-id <id> --base-territory USA --price-point-id <id> を実行します(0.0 = 無料) |
reviewContactCheck が失敗 | asc version-review-detail update --version-id <id> --contact-email [email protected] --contact-phone "+1-555-0100" |
CI ゲートスクリプト
#!/bin/bash
set -e
RESULT=$(asc versions check-readiness --version-id "$VERSION_ID")
IS_READY=$(echo "$RESULT" | jq -r '.data[0].isReadyToSubmit')
if [ "$IS_READY" = "true" ]; then
eval "$(echo "$RESULT" | jq -r '.data[0].affordances.submit')"
else
echo "NOT ready. Failing checks:"
echo "$RESULT" | jq '.data[0] | {stateCheck, buildCheck, pricingCheck}'
exit 1
fi