asc-beta-review について
asc-beta-reviewは、`asc`コマンドラインでAppleのベータアプリ審査とTestFlight関連情報を管理するスキルです。ビルドの提出や審査状況の確認、連絡先情報の編集、ロケール別説明の管理に対応します。
主な機能
- 01ベータ審査の提出を作成・確認
- 02審査連絡先とデモアカウント情報の管理
- 03ベータアプリのローカライズを一覧・更新
- 04応答内の次のコマンド候補を利用
活用シーン
- 01外部TestFlightテスト審査へのビルド提出
- 02提出が承認または却下されたか確認
- 03審査連絡先やデモアカウント情報の更新
- 04TestFlightテスター向け説明のローカライズ管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-beta-reviewインストール後、Claude Code で/asc-beta-reviewを入力して読み込まれたか確認します。
詳細
asc を使用したベータアプリレビュー
TestFlight の外部テストレビューにビルドを提出し、ベータレビューの連絡先情報を管理します。Apple は、TestFlight で外部テスターにビルドを配布する前に、ベータアプリレビューを必須としています。
認証
ベータレビューのコマンドを実行する前に、認証情報を設定してください。
asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8
CAEOAS — 次のステップを示すアフォーダンス
すべての JSON レスポンスには、すぐに実行できるコマンドを含む "affordances" が含まれます。
BetaAppReviewSubmission のアフォーダンス:
{
"id": "sub-abc123",
"buildId": "build-42",
"state": "WAITING_FOR_REVIEW",
"affordances": {
"getSubmission": "asc beta-review submissions get --submission-id sub-abc123",
"listSubmissions": "asc beta-review submissions list --build-id build-42"
}
}
BetaAppReviewDetail のアフォーダンス:
{
"id": "d-xyz789",
"appId": "app-1",
"contactFirstName": "John",
"contactEmail": "[email protected]",
"demoAccountRequired": false,
"affordances": {
"getDetail": "asc beta-review detail get --app-id app-1",
"updateDetail": "asc beta-review detail update --detail-id d-xyz789"
}
}
Nil のオプションフィールド(contactFirstName、contactLastName、contactPhone、contactEmail、demoAccountName、demoAccountPassword、notes)は JSON 出力から省略されます。
コマンド
submissions list — ビルドのベータレビュー提出を一覧表示する
asc beta-review submissions list --build-id <BUILD_ID> [--pretty]
submissions create — ビルドをベータレビューに提出する
asc beta-review submissions create --build-id <BUILD_ID> [--pretty]
新しいベータアプリレビューの提出を作成します。ビルドは WAITING_FOR_REVIEW 状態になります。
submissions get — 特定の提出を取得する
asc beta-review submissions get --submission-id <SUBMISSION_ID> [--pretty]
detail get — アプリのベータレビュー連絡先情報を取得する
asc beta-review detail get --app-id <APP_ID> [--pretty]
アプリのベータアプリレビュー詳細レコード(連絡先情報とデモアカウント)を返します。各アプリにはベータレビュー詳細レコードが1つあります。
detail update — ベータレビュー連絡先情報を更新する
asc beta-review detail update --detail-id <DETAIL_ID> \
[--contact-first-name <name>] \
[--contact-last-name <name>] \
[--contact-phone <phone>] \
[--contact-email <email>] \
[--demo-account-name <username>] \
[--demo-account-password <password>] \
[--demo-account-required] \
[--notes <text>]
指定されたフラグのみが送信されます。指定されていないフィールドは変更されません。
ベータアプリのローカライズ — asc beta-app-localizations
TestFlight のテスターに表示される、ロケールごとのベータアプリの説明、テスターからのフィードバック用メールアドレス、マーケティング URL、プライバシーポリシー URL です。外部テストを開始する前に Apple が必須としており、プライマリロケールの説明が未設定または空であることが、外部テストの提出が却下される最も一般的な理由です。
以下の既存コマンドとは別の機能です。
asc beta-review detail→ アプリ単位のレビュー用連絡先情報とデモアカウントasc builds update-beta-notes→ ビルドごとの「テスト内容」メモasc beta-app-localizations→ ロケールごとのベータアプリの説明(このセクション)
# List existing beta localizations for an app
asc beta-app-localizations list --app-id <APP_ID> [--pretty]
# Get a single localization
asc beta-app-localizations get --localization-id <ID>
# Create a new localization (Apple auto-creates one for the primary locale)
asc beta-app-localizations create \
--app-id <APP_ID> \
--locale en-US \
[--description <text>] \
[--feedback-email <email>] \
[--marketing-url <url>] \
[--privacy-policy-url <url>] \
[--tv-os-privacy-policy <text>]
# Patch — only supplied flags are sent; omitted fields unchanged
asc beta-app-localizations update \
--localization-id <ID> \
[--description <text>] \
[--feedback-email <email>] \
[--marketing-url <url>] \
[--privacy-policy-url <url>]
# Delete (e.g. removing a no-longer-supported locale)
asc beta-app-localizations delete --localization-id <ID>
各ローカライズのアフォーダンス:delete、get、listSiblings(asc beta-app-localizations list --app-id <appId>)、update。
詳しくは、完全なリファレンスである docs/features/beta-app-localizations.md をご覧ください。
BetaReviewState
| 状態 | 説明 |
|---|---|
WAITING_FOR_REVIEW | 提出済みで、Apple のレビュー待ちです |
IN_REVIEW | 現在レビュー中です |
APPROVED | 外部テスト用に承認済みです |
REJECTED | 却下されました。問題を修正して再提出してください |
セマンティックブール値:isPending、isInReview、isApproved、isRejected。
一般的なワークフロー
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
# 1. Upload a build
asc builds upload --file MyApp.ipa
# 2. Add the build to an external beta group
BUILD_ID=$(asc builds list --app-id "$APP_ID" | jq -r '.data[0].id')
GROUP_ID=$(asc testflight groups list --app-id "$APP_ID" | jq -r '.data[] | select(.isInternalGroup == false) | .id' | head -1)
asc builds add-beta-group --build-id "$BUILD_ID" --beta-group-id "$GROUP_ID"
# 3. Set up beta review contact details (first time)
asc beta-review detail get --app-id "$APP_ID" --pretty
DETAIL_ID=$(asc beta-review detail get --app-id "$APP_ID" | jq -r '.data[0].id')
asc beta-review detail update --detail-id "$DETAIL_ID" \
--contact-first-name "John" \
--contact-last-name "Doe" \
--contact-email "[email protected]" \
--contact-phone "+1-555-0100"
# 4. Set the Beta App Description for the primary locale (required for external testing)
EXISTING=$(asc beta-app-localizations list --app-id "$APP_ID" | jq -r '.data[] | select(.locale == "en-US") | .id')
if [ -z "$EXISTING" ]; then
asc beta-app-localizations create --app-id "$APP_ID" --locale en-US \
--description "Welcome to the beta — please test the new dashboard." \
--feedback-email [email protected]
else
asc beta-app-localizations update --localization-id "$EXISTING" \
--description "Welcome to the beta — please test the new dashboard." \
--feedback-email [email protected]
fi
# 5. Submit the build for beta app review
asc beta-review submissions create --build-id "$BUILD_ID" --pretty
# 6. Check submission status
asc beta-review submissions list --build-id "$BUILD_ID" --pretty
主な計算プロパティ(BetaAppReviewDetail)
| プロパティ | ロジック |
|---|---|
hasContact | contactEmail != nil && contactPhone != nil |
demoAccountConfigured | !demoAccountRequired || (name != nil && password != nil) |
アプリ ID の確認
project-context.md をご覧ください。ユーザーに確認したり asc apps list を実行したりする前に、.asc/project.json を確認してください。
出力フラグ
--pretty # Pretty-print JSON
--output table # Table format
--output markdown # Markdown table