asc-builds-upload について
asc-builds-uploadは、`asc`コマンドラインでApp Store Connectにビルドをアップロードし、配布を管理するスキルです。アップロード状況の確認、TestFlightベータグループの操作、コンプライアンス回答、バージョンとの関連付けに対応します。
主な機能
- 01IPAまたはPKGビルドのアップロード
- 02アップロードの確認・一覧表示・削除
- 03ベータグループへのビルド追加・削除
- 04暗号化コンプライアンス回答の設定
- 05ビルドとアプリバージョンの関連付け
活用シーン
- 01ビルドをアップロードして処理完了を待つ
- 02TestFlightベータグループへのビルド配布
- 03暗号化コンプライアンスの未回答を解消
- 04App Store審査に向けたバージョンの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-builds-uploadインストール後、Claude Code で/asc-builds-uploadを入力して読み込まれたか確認します。
同梱ファイルreferences/workflow.md
詳細
asc ビルドのアップロード
App Store Connect 経由でビルドをアップロードして配布します。エンドツーエンドのフローとエラー処理の全体については、workflow.md を参照してください。
コマンド
ビルドをアップロード
asc builds upload \
--app-id <APP_ID> \
--file MyApp.ipa \
--version 1.0.0 \
--build-number 42 \
[--platform ios|macos|tvos|visionos] # auto-detected from extension
[--wait] # poll until processing completes
プラットフォームは自動検出されます:.pkg → macos、それ以外 → ios。
ステータスを確認
asc builds uploads get --upload-id <UPLOAD_ID>
asc builds uploads list --app-id <APP_ID>
asc builds uploads delete --upload-id <UPLOAD_ID>
TestFlight で配布
# Add build to a beta group
asc builds add-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>
# Remove build from a beta group
asc builds remove-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>
# Set "What's New" notes (creates or updates the localization)
asc builds update-beta-notes \
--build-id <BUILD_ID> \
--locale en-US \
--notes "Bug fixes and improvements."
輸出コンプライアンスの回答(ITSAppUsesNonExemptEncryption)
Info.plist に ITSAppUsesNonExemptEncryption を含めずに IPA をアップロードすると、ASC はビルドを「Missing Compliance」としてマークし、TestFlight の外部テストがブロックされます。アップロード後に回答を設定します:
asc builds set-encryption-compliance --build-id <BUILD_ID> --uses-non-exempt-encryption true|false
false— 適用除外(HTTPS/TLS のみ、Apple のデフォルトの暗号化などを使用するほとんどのアプリ)。true— 適用除外ではない暗号化を使用 —AppEncryptionDeclarationも必要です(現時点では App Store Connect の Web UI からのみ管理できます)。
コンプライアンス未対応の状態にあるビルドには、次の操作が表示されます:
{
"id": "build-1",
"affordances": {
"setEncryptionCompliance": "asc builds set-encryption-compliance --build-id build-1 --uses-non-exempt-encryption <true|false>"
}
}
回答を設定すると、この操作は表示されなくなります(Build の usesNonExemptEncryption が nil ではなくなります)。
ビルドをバージョンにリンク
asc versions set-build --version-id <VERSION_ID> --build-id <BUILD_ID>
App Store の審査にバージョンを提出する前に必要です。
App ID を解決
project-context.md を参照してください。ユーザーに尋ねたり、asc apps list を実行したりする前に、.asc/project.json を確認してください。
一般的なワークフロー
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
# If empty: ask user or run `asc apps list | jq -r '.data[0].id'`
# 1. Get the next build number automatically
BUILD_NUMBER=$(asc builds next-number --app-id "$APP_ID" --version 1.2.0 --platform ios)
# 2. Upload and wait
asc builds upload --app-id "$APP_ID" --file MyApp.ipa \
--version 1.2.0 --build-number "$BUILD_NUMBER" --wait
# 3. Get the processed build ID
BUILD_ID=$(asc builds list --app-id $APP_ID | jq -r '.data[0].id')
# 4. Distribute to beta group
asc builds add-beta-group --build-id $BUILD_ID --beta-group-id $GROUP_ID
# 5. Set notes
asc builds update-beta-notes --build-id $BUILD_ID --locale en-US --notes "..."
# 5b. Answer export compliance if Info.plist didn't carry ITSAppUsesNonExemptEncryption
asc builds set-encryption-compliance --build-id $BUILD_ID --uses-non-exempt-encryption false
# 6. Link to version and submit
asc versions set-build --version-id $VERSION_ID --build-id $BUILD_ID
asc versions submit --version-id $VERSION_ID
CAEOAS の操作
アップロードの応答には、すぐに実行できる後続コマンドを含む affordances が含まれます:
{
"data": [{
"affordances": {
"checkStatus": "asc builds uploads get --upload-id abc123",
"listBuilds": "asc builds list --app-id 123456789"
},
"state": "COMPLETE"
}]
}
listBuilds は state == "COMPLETE" の場合にのみ表示されます。ID を覚えなくても操作を進められるよう、これらの操作を利用してください。
リファレンス
以下については、workflow.md を参照してください。
- 5 ステップのアップロード API フローの詳細
- ビルドのアップロード状態とポーリングのロジック
- エラーの状況とトラブルシューティング