asc-metadata-sync について
asc-metadata-syncは、ascを使ってApp StoreのメタデータをApp Store Connectと同期するスキルです。標準のJSONワークフローに加え、ローカライズファイルや旧形式のFastlaneを使う手順も説明します。
主な機能
- 01標準メタデータの取得と送信
- 02リモート変更の検証とプレビュー
- 03メタデータ更新の計画と承認
- 04キーワードとローカライズ素材の同期
- 05Fastlaneメタデータのインポートとエクスポート
活用シーン
- 01ローカライズ済みアプリ情報やバージョン情報を更新
- 02適用前にメタデータ変更をレビュー
- 03既存のFastlaneメタデータを移行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rorkai/ app-store-connect-cli-skills --skill asc-metadata-syncインストール後、Claude Code で/asc-metadata-syncを入力して読み込まれたか確認します。
同梱ファイルreferences/asset-library.md
詳細
asc メタデータ同期
このスキルを使って、App Store のメタデータを App Store Connect と同期します。アプリ情報とバージョンのローカライズフィールドには、標準の asc metadata ワークフローを優先してください。ユーザーが .strings ファイルまたは従来の fastlane 形式のメタデータを明示的に必要としている場合に限り、低レベルの asc localizations コマンドと asc migrate コマンドを使用してください。
現在の標準ワークフロー
1. 標準メタデータを取得する
asc metadata pull --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
アプリに複数のアプリ情報レコードがある場合は、先にアプリ情報 ID を特定して、明示的に指定してください。
asc apps info list --app "APP_ID" --output table
asc metadata pull --app "APP_ID" --app-info "APP_INFO_ID" --version "1.2.3" --platform IOS --dir "./metadata"
2. ローカルファイルを編集する
標準ファイルは、次の場所に書き込まれます。
- アプリレベルのフィールド用
metadata/app-info/<locale>.json:name、subtitle、privacyPolicyUrl、privacyChoicesUrl、privacyPolicyText - バージョンフィールド用
metadata/version/<version>/<locale>.json:description、keywords、marketingUrl、promotionalText、supportUrl、whatsNew
著作権はローカライズフィールドではありません。次のコマンドで管理してください。
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"
3. アップロード前に検証する
asc metadata validate --dir "./metadata" --output table
サブスクリプションアプリでは、利用規約/EULA の追加ヒューリスティックも含めてください。
asc metadata validate --dir "./metadata" --subscription-app --output table
4. プレビューして適用する
まずドライランを実行します。
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run --output table
計画に問題がないことを確認してから適用します。
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
同じ標準ファイルに対して、apply という名前のコマンド形式をユーザーが希望する場合は、asc metadata apply を使用してください。
asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run
asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
変更前に明示的な承認を行うレビュー成果物のワークフローには、asc 2.6.1 で導入されたメタデータレビューコマンドを使用してください。
asc metadata plan --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --review-dir ".asc/metadata/review"
asc metadata approve --review-dir ".asc/metadata/review" --all
asc metadata status --review-dir ".asc/metadata/review" --output table
asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --review-dir ".asc/metadata/review" --confirm
適用を保護する前に、選択的な承認成果物をユーザーが希望する場合は、asc metadata approve --key "version:1.2.3:en-US:whatsNew" または --scope app-info,version を使用してください。バージョン範囲のキーには App Store のバージョン文字列が含まれます。
App Clip とプレビューの転送
メタデータの取得/送信では、デフォルトでローカライズテキストが対象になります。アセットの範囲は明示的に指定してください。
asc metadata pull --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --include localizations,app-clip,previews
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --include localizations,app-clip,previews --dry-run
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --include localizations,app-clip,previews --confirm
プレビューの検証には ffprobe が必要です。App Clip ヘッダーの置き換えでは、先に古いヘッダーが削除されるため、--allow-deletes も必要です。この置き換えを明示的に許可してください。
エクスポートには元の動画ではなく、HLS の .m3u8 プレイリストや .preview.json の参照が含まれる場合があります。一致するリモートプレビューは再利用できます。一致しない参照には、元の動画を用意するか、--include から previews を除外する必要があります。プレイリストの拡張子を .mp4 に変更しても、アップロード可能にはなりません。video-previews download を直接実行してもプレイリストが返されるため、個別にダウンロードする場合は出力パスに .m3u8 を指定してください。
再利用可能なライブラリメディア、ヘッダー/検索用クリエイティブアセット、またはローカライズされた配置については、アセットライブラリのワークフローを参照してください。これらは App Clip のヘッダー画像や通常のメタデータテキストとは別のものです。
キーワードのみのワークフロー
バージョンのローカライズにおける keywords フィールドのみを変更する場合に使用してください。
asc metadata keywords diff --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
asc metadata keywords apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --confirm
キーワード調査をインポートする場合:
asc metadata keywords import --dir "./metadata" --version "1.2.3" --locale "en-US" --input "./keywords.csv"
asc metadata keywords sync --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --input "./keywords.csv"
フィールドの簡易更新
バージョンのローカライズを単発で編集する場合は、バージョンセレクターを明示的に指定してください。バージョン ID がすでに分かっている場合は、決定的な更新を行える --version-id を使用します。バージョン文字列を使用する場合は、--version と --platform を指定してください。
asc apps info edit --app "APP_ID" --version-id "VERSION_ID" --locale "en-US" --whats-new "Bug fixes and improvements"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --description "Your app description here"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --keywords "keyword1,keyword2,keyword3"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --support-url "https://support.example.com"
アプリ情報のフィールドには、作成後のセットアップコマンドを優先してください。
asc app-setup info set --app "APP_ID" --primary-locale "en-US" --privacy-policy-url "https://example.com/privacy"
asc app-setup info set --app "APP_ID" --locale "en-US" --name "Your App Name" --subtitle "Your subtitle"
低レベルのローカライズファイル
標準の JSON ではなく、インポート/エクスポートファイルをユーザーが明示的に希望する場合は、.strings ファイルを使用してください。
asc localizations list --version "VERSION_ID" --output table
asc localizations download --version "VERSION_ID" --path "./localizations"
asc localizations upload --version "VERSION_ID" --path "./localizations" --dry-run
asc localizations upload --version "VERSION_ID" --path "./localizations"
アプリ情報のローカライズの場合:
asc apps info list --app "APP_ID" --output table
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --output table
asc localizations download --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations" --dry-run
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
レガシー fastlane メタデータ
既存の fastlane 形式のツリーにのみ使用してください。
asc migrate export --app "APP_ID" --version-id "VERSION_ID" --output-dir "./fastlane"
asc migrate validate --fastlane-dir "./fastlane"
asc migrate import --app "APP_ID" --version-id "VERSION_ID" --fastlane-dir "./fastlane" --dry-run
asc migrate import --app "APP_ID" --version-id "VERSION_ID" --fastlane-dir "./fastlane" --confirm
Deliverfile の metadata_path と screenshots_path の値が優先され、Deliverfile を基準に相対パスとして解決されます。--fastlane-dir "./fastlane" を指定する場合は、"./fastlane/metadata" ではなく metadata_path "./metadata" を使用してください。後者は ./fastlane/fastlane/metadata として解決されます。Deliverfile 内の古い値を修正するか、削除して、慣例的な metadata/ および screenshots/ ディレクトリを使用してください。
選択した Fastlane ディレクトリ外のパスは、オペレーターが --allow-external-metadata または --allow-external-screenshots で明示的に信頼しない限り失敗します。信頼できないインポートでは、これらのフラグをオフにしてください。
インポートの --dry-run は、デフォルトでローカル入力を一覧表示します。書き込みを行わずにリモートストアのアセットを比較するには、--check-remote を追加してください。これには認証が必要で、配信済みメディアがダウンロードされる場合があります。エクスポートされたプレイリストの参照と一致するものがなく、元の動画も利用できない場合は、--skip-previews を使用してください。
プロセスの終了状態だけでなく、検証結果の本文も確認してください。asc migrate validate は、valid: false かつ errorCount が 0 以外のレポートを返しながら、終了コード 0 で終了することがあります。確定済みのインポートは、完了したステージと失敗の詳細を含む status: "partial" を出力しながら、0 以外の終了コードで終了することがあるため、標準出力が空でないことは成功を意味しません。
文字数制限
| フィールド | 制限 |
|---|---|
| 名前 | 30 |
| サブタイトル | 30 |
| キーワード | カンマ区切りで100文字 |
| 説明 | 4000 |
| 新機能 | 4000 |
| プロモーションテキスト | 170 |
エージェントの動作
- ユーザーが
.stringsまたは fastlane メタデータを明示的に求めている場合を除き、asc metadata pullから開始してください。 - リモートへの書き込み前に、必ず
asc metadata validateを実行してください。 - コマンドが対応している場合は、
--dry-runでリモートの変更をプレビューしてください。 - ユーザーが適用前に永続的なレビュー用成果物を求めている場合は、
asc metadata planとapprove/statusを使用してください。 - 簡単な編集では、曖昧な最新バージョンの動作に依存せず、必ず
--version-idまたは--versionと--platformを指定してください。 - アプリ情報のフィールドとバージョンのフィールドは分けてください。
- 人が確認する場合は
--output tableを使用し、自動化には JSON を使用してください。