asc-app-infos について
asc-app-infosは、`asc`コマンドラインでアプリの継続的なメタデータとローカライズを管理するスキルです。カテゴリ、名前、サブタイトル、プライバシー情報を扱い、リリースごとの情報とは区別します。
主な機能
- 01アプリ情報レコードの一覧表示
- 02メイン・サブカテゴリの設定
- 03App Storeカテゴリの参照
- 04ローカライズの作成・更新・削除
- 05言語別プライバシー情報の管理
活用シーン
- 01アプリカテゴリの更新
- 02ローカライズされた名前とサブタイトルの管理
- 03言語別プライバシーポリシー情報の変更
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-app-infosインストール後、Claude Code で/asc-app-infosを入力して読み込まれたか確認します。
詳細
asc アプリ情報とローカライズ
asc CLI を使用して、アプリレベルのメタデータ(名前、副題、プライバシーポリシーの URL、カテゴリ)を管理します。
注:これは、バージョンレベルのメタデータ(
asc version-localizations)とは異なります。バージョンレベルのメタデータでは、「新機能」、説明、キーワードを扱います。アプリ情報のローカライズには、アプリ名と副題が永続的に保持されます。
アプリ情報を一覧表示する
各アプリには、1 件の AppInfo レコードがあります(複数あることはまれです)。後続のコマンドで必要となる AppInfo ID を取得します。
asc app-infos list --app-id <APP_ID> [--pretty]
JSON 出力:
{
"data": [
{
"id": "info-abc123",
"appId": "6746148194",
"affordances": {
"getAgeRating": "asc age-rating get --app-info-id info-abc123",
"listAppInfos": "asc app-infos list --app-id 6746148194",
"listLocalizations": "asc app-info-localizations list --app-info-id info-abc123",
"updateCategories": "asc app-infos update --app-info-id info-abc123"
}
}
]
}
アプリ情報を更新する(カテゴリ)
プライマリカテゴリ、セカンダリカテゴリ、またはその両方を設定します。すべてのフラグは省略可能です(PATCH セマンティクス)。
asc app-infos update --app-info-id <APP_INFO_ID> \
[--primary-category GAMES] \
[--primary-subcategory-one GAMES_ACTION] \
[--secondary-category UTILITIES]
アプリカテゴリを一覧表示する
すべての App Store カテゴリ ID を参照します(app-infos update に必要です)。
asc app-categories list [--platform IOS|MAC_OS|TV_OS] [--output table]
ID の例: GAMES、GAMES_ACTION、GAMES_PUZZLE、GAMES_ADVENTURE、BUSINESS、UTILITIES、EDUCATION、HEALTH_AND_FITNESS、ENTERTAINMENT、SOCIAL_NETWORKING、PRODUCTIVITY、FINANCE、MUSIC、TRAVEL、SPORTS
サブカテゴリは PARENT_SUBTYPE のパターンに従います(例:GAMES_ACTION は GAMES の配下です)。API は parentId フィールドを返しません。
ローカライズを一覧表示する
asc app-info-localizations list --app-info-id <APP_INFO_ID> [--output table]
テーブル出力:
ID Locale Name Subtitle
-------- -------- -------------- --------------------
loc-001 en-US My App Do things faster
loc-002 zh-Hans 我的应用 更快地完成任务
ローカライズを作成する
新しいロケールエントリを作成します。--name は必須です(最大 30 文字)。
asc app-info-localizations create \
--app-info-id <APP_INFO_ID> \
--locale zh-Hans \
--name "我的应用"
一般的なロケール:en-US、zh-Hans、zh-Hant、ja、ko、de、fr
ローカライズを更新する
すべてのフィールドは省略可能です。指定したフィールドのみが変更されます(PATCH セマンティクス)。
asc app-info-localizations update \
--localization-id <LOCALIZATION_ID> \
[--name "New App Name"] \
[--subtitle "Do things faster"] \
[--privacy-policy-url "https://example.com/privacy"] \
[--privacy-choices-url "https://example.com/choices"] \
[--privacy-policy-text "Our privacy policy text"]
| フラグ | 説明 |
|---|---|
--name | アプリ名(最大 30 文字) |
--subtitle | 副題(最大 30 文字) |
--privacy-policy-url | メインのプライバシーポリシー URL |
--privacy-choices-url | プライバシーに関する選択/オプトアウトの URL |
--privacy-policy-text | インラインのプライバシーポリシー本文 |
ローカライズを削除する
ロケールエントリを完全に削除します。
asc app-info-localizations delete --localization-id <LOCALIZATION_ID>
CAEOAS の付加機能
すべてのレスポンスには、すぐに実行できる後続コマンドが含まれます。
AppInfo:
{
"affordances": {
"getAgeRating": "asc age-rating get --app-info-id <ID>",
"listAppInfos": "asc app-infos list --app-id <APP_ID>",
"listLocalizations": "asc app-info-localizations list --app-info-id <ID>",
"updateCategories": "asc app-infos update --app-info-id <ID>"
}
}
AppInfoLocalization:
{
"affordances": {
"delete": "asc app-info-localizations delete --localization-id <ID>",
"listLocalizations": "asc app-info-localizations list --app-info-id <APP_INFO_ID>",
"updateLocalization": "asc app-info-localizations update --localization-id <ID>"
}
}
AppCategory:
{
"affordances": {
"listCategories": "asc app-categories list"
}
}
アプリ 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 AppInfo ID
APP_INFO_ID=$(asc app-infos list --app-id "$APP_ID" | jq -r '.data[0].id')
# 2. See existing localizations
asc app-info-localizations list --app-info-id "$APP_INFO_ID" --output table
# 3a. Update an existing locale
LOC_ID=$(asc app-info-localizations list --app-info-id "$APP_INFO_ID" \
| jq -r '.data[] | select(.locale == "en-US") | .id')
asc app-info-localizations update \
--localization-id "$LOC_ID" \
--name "My App" \
--subtitle "Do things faster" \
--privacy-policy-url "https://example.com/privacy"
# 3b. Add a new locale
asc app-info-localizations create \
--app-info-id "$APP_INFO_ID" \
--locale zh-Hans \
--name "我的应用"
# 3c. Remove an unwanted locale
asc app-info-localizations delete --localization-id <LOCALIZATION_ID>
# 4. Set app category
asc app-categories list --platform IOS --output table
asc app-infos update \
--app-info-id "$APP_INFO_ID" \
--primary-category GAMES \
--primary-subcategory-one GAMES_ACTION
# 5. Check age rating (navigate via affordance)
asc age-rating get --app-info-id "$APP_INFO_ID"
2 種類のローカライズ
| 種類 | コマンド | フィールド |
|---|---|---|
AppInfoLocalization | asc app-info-localizations * | name、subtitle、privacyPolicyUrl、privacyChoicesUrl、privacyPolicyText |
AppStoreVersionLocalization | asc version-localizations * | whatsNew、description、keywords、screenshots |
アプリ情報のローカライズは、アプリのバージョンをまたいで保持されます。バージョンのローカライズはリリースごとに設定されます。