asc-in-app-events について
App Store Connect のアプリ内イベントについて、asc CLI での確認、作成、更新、ローカライズ、メディアのアップロード、提出を案内するスキルです。イベント公開を管理するチーム向けに、重複操作を避け、結果を正確に報告できるよう既存リソースや権限、提出状態の確認を重視します。
主な機能
- 01イベントとローカライズを確認
- 02イベント情報を作成または更新
- 03ローカライズ文とメディアを管理
- 04提出状態を確認しドラフトを復旧
- 05日付、ディープリンク、配信を検証
活用シーン
- 01App Store イベントの準備とローカライズ
- 02イベント画像や動画をアップロード
- 03イベントを修正して既存の審査ドラフトを続行
- 04受付結果と Apple の提出状態を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rorkai/ app-store-connect-cli-skills --skill asc-in-app-eventsインストール後、Claude Code で/asc-in-app-eventsを入力して読み込まれたか確認します。
詳細
asc アプリ内イベント
指定された段階に限り、asc app-events を使用してください。ローカライズ、メディアのアップロード、診断のリクエストは、別のイベントを作成または提出する許可にはなりません。
解決済みのアプリ、イベント、プラットフォーム、ロケール、および既存の認可情報を維持してください。
対象を確認する
実行前に asc app-events --help と関連するサブコマンドのヘルプを確認してください。
アプリ ID と認証プロファイルを解決し、変更前に既存のイベントを確認してください。
asc app-events list --app "APP_ID" --paginate --output json
asc app-events view --event-id "EVENT_ID" --output json
asc app-events localizations list --event-id "EVENT_ID" --paginate --output json
結果を解析する場合は、明示的に --output json を指定してください。出力の既定値は TTY の状態に応じて変わります。
イベント ID とローカライズ ID は区別してください。
準備と作成
- イベントバッジと対象のテリトリーを選択してください。受け付けられる
--event-type、--purpose、--purchase-requirementの値はヘルプで確認してください。App Store Connect に記載されているすべての値が CLI でサポートされているとは限りません。 - RFC 3339 形式の将来の日付を指定してください。開始日時は終了日時より前にし、期間は 15 分から 31 日までとします。また、公開開始日時はイベント開始日時の 14 日前以降かつ開始日時以前にしてください。CLI はタイムスタンプを解析しますが、Apple のスケジュール規則をすべて検証するわけではありません。
- イベントの遷移先を開くディープリンクを指定してください。対象のアプリビルドでユニバーサルリンクまたはカスタム URL スキームをテストしてください。スキームが登録されているだけでは、遷移先が機能することの証明にはなりません。ディープリンクがなくても作成は成功しますが、イベントは審査に出せる状態ではありません。
作成前に日付変数を合意済みのスケジュールに置き換えてください。
asc app-events create \
--app "APP_ID" --name "Summer Challenge" --event-type CHALLENGE \
--start "$START_RFC3339" --end "$END_RFC3339" \
--publish-start "$PUBLISH_START_RFC3339" \
--deep-link "myapp://event/summer" --primary-locale en-US \
--purchase-requirement NO_COST_ASSOCIATED \
--priority NORMAL --purpose APPROPRIATE_FOR_ALL_USERS --output json
--name は内部参照名で、64 文字以内です。返されたイベント ID を保持してください。既存のイベントには、置き換えを作成するのではなく asc app-events update を使用してください。変更するフィールドについては、ヘルプを確認してください。
ローカライズとメディアのアップロード
リクエストされたローカライズのうち、不足しているものだけを作成してください。表示名は 30 文字、短い説明は 50 文字、長い説明は 120 文字までです。既存のローカライズを更新する場合は、変更が必要なテキストフラグを指定して asc app-events localizations update --localization-id "LOC_ID" を使用してください。
asc app-events localizations create \
--event-id "EVENT_ID" --locale en-US --name "Summer Challenge" \
--short-description "Win three duels a day." \
--long-description "Play every day during the challenge to earn the summer badge."
asc app-events screenshots create \
--event-id "EVENT_ID" --locale en-US \
--path "./event-card.png" --asset-type EVENT_CARD
asc app-events screenshots create \
--event-id "EVENT_ID" --locale en-US \
--path "./event-details.png" --asset-type EVENT_DETAILS_PAGE
ローカライズがすでに解決済みの場合は、--event-id と --locale の代わりに --localization-id "LOC_ID" を使用してください。
動画のアップロードには asc app-events video-clips create を使用します。アセットの種類と --preview-frame-time-code について、ヘルプを確認してください。
既存の Asset Library メディアを再利用するには、イベントのローカライズ ID と EVENT_CARD_ASSET または EVENT_DETAILS_PAGE_ASSET を指定して asc app-events localizations placements を使用してください。アップロード、配信、配置の確認には Asset Library のワークフロー に従ってください。配置してもイベントは提出されません。
JPG/JPEG/PNG 画像を使用し、ファイルサイズはそれぞれ 500 MB 以下にしてください。アップロードとの互換性を保つため、アルファチャンネルのない不透明な画像を書き出してください。Apple が指定する寸法は次のとおりです。
| アセット | アスペクト比 | 最小 | 最大 |
|---|---|---|---|
EVENT_CARD | 16:9 | 1920 × 1080 | 3840 × 2160 |
EVENT_DETAILS_PAGE | 9:16 | 1080 × 1920 | 2160 × 3840 |
可能な限り、画像内のテキストやロゴは避けてください。トリミング、グラデーション、App Store のコントロールを考慮してください。画像の一定割合が安全だと決めつけず、利用可能な場合は App Store Connect のプレビューを確認してください。対象とするローカライズごとにメディアを検証してください。翻訳済みテキストを含むロケールで、プライマリロケールの不足アセットが引き継がれるとは限りません。Apple のメディア仕様と表示ガイドラインを参照してください。
確認して提出する
スケジュール、ディープリンク、ローカライズ済みテキスト、配信済みメディアを読み返して確認します。動画クリップを使用している場合は、それも確認します。検証できなかったプレビューやリンクの動作があれば報告します。
asc app-events view --event-id "EVENT_ID" --output json
asc app-events screenshots list --event-id "EVENT_ID" --locale en-US --paginate --output json
承認済みの iOS バージョンがあるアプリで、提出が許可されており、続行が必要な既存の提出がない場合:
asc app-events submit --event-id "EVENT_ID" --app "APP_ID" --platform IOS --confirm --output json
asc review submissions-get --id "SUBMISSION_ID" --output json
2つ目のコマンドでは、レシートの submissionId を使用します。Apple から返された状態を報告します。提出の成功を示すレシートは、承認または公開の証拠ではありません。アプリに承認済みの iOS バージョンがない場合、Apple は最初のバージョンの提出にイベントを含めることを求めています。asc-release-flow を使用してそのバージョンを準備し、以下に示すように review items-add でイベントを提出予定のドラフトに追加します。単独の app-events submit コマンドは省略します。新機能が必要な場合は、ビルドとイベントのリリースを調整します。Apple の提出ガイダンスを参照してください。
作業を重複させずに復旧する
app-events submit は新しいレビュー提出を作成し、イベントを追加してから提出します。作成後に失敗すると、エラーに提出 ID が表示されない場合でも、ドラフトが残ることがあります。再試行する前に、提出とその項目を確認します。
asc review submissions-list --app "APP_ID" --platform IOS --paginate --output json
asc review submissions-get --id "SUBMISSION_ID" --output json
asc review items-list --submission "SUBMISSION_ID" --paginate --output json
対象の READY_FOR_REVIEW ドラフトについて、アプリ、プラットフォーム、すべての項目が許可された提出に属していることを確認します。まずイベントを修正します。たとえば、Apple からディープリンクがないと報告された場合は、asc app-events update --event-id "EVENT_ID" --deep-link "myapp://event/summer" を使用します。その後、ドラフトを再利用します。
asc review items-add --submission "SUBMISSION_ID" --item-type appEvents --item-id "EVENT_ID" --if-exists skip
asc review submissions-submit --id "SUBMISSION_ID" --confirm
空の READY_FOR_REVIEW ドラフトはキャンセルしないでください。キャンセルするアクティブなレビューはありません。すでにレビュー待ちの提出を再提出しないでください。ほかの提出状態については、対象と許可された作業を維持したまま asc-submission-health に引き継ぎます。
403 FORBIDDEN_ERROR は、実際のアクセス制限を示している場合があります。一時的なサービスエラーと診断する前に、選択中のプロファイル、アプリへのアクセス権、ロールを確認してください。403 が一度発生しただけで認証情報を切り替えたり、有効だと決めつけたりしないでください。直近の成功した呼び出しから一時的な問題と判断できる場合は、上限を定めたバックオフで読み取りを再試行し、エラーが続く場合は停止します。作成やアップロードの結果が不確かな場合、繰り返す前に既存のリソースを一覧表示し、配信状態を確認して重複を避けます。
現在のプロバイダー要件については、Apple のイベント設定ガイダンスを参照してください。