mcpField
A
asc-availability

asc-availability

github.com/tddworks開発585 回インストール6 週間前に更新
リポジトリ

asc-availability について

`asc` コマンドラインツールで、App、アプリ内課金、サブスクリプションの地域別提供状況を確認・管理するスキルです。地域制限の調査や販売市場の設定に役立ちます。

主な機能

  1. 01Appの提供状況と制限理由の確認
  2. 02地域ごとのApp提供設定
  3. 03アプリ内課金とサブスクリプションの地域管理
  4. 04地域IDと通貨の一覧表示
  5. 05新規追加地域の自動対象化

活用シーン

  1. 01特定地域でAppを販売できない理由の調査
  2. 02アプリ内課金やサブスクリプションの市場制限
  3. 03新規地域での製品販売開始

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-availability

インストール後、Claude Code で/asc-availabilityを入力して読み込まれたか確認します。

詳細

アプリ、IAP、サブスクリプションの提供地域

アプリ、アプリ内課金、またはサブスクリプションを利用できる App Store の地域(国/地域)を管理します。これは地域ごとの配信を制御するうえで重要です。たとえば、特定の国でアプリがブロックされている理由を確認したり、サブスクリプションを特定の市場に限定したり、IAP を世界中で利用可能にしたりできます。

アプリの提供状況(地域ごとのステータス)

最も詳細な提供状況を確認できます。すべての地域について、isAvailable(true/false)、contentStatuses によるブロック理由、releaseDate、isPreOrderEnabled が表示されます。

asc app-availability get --app-id <APP_ID> [--pretty]

アプリの提供状況が設定されていない場合(App Store Connect に 提供状況を設定 と表示されている場合)、{"data":[]} が返され、ヒントが表示されます。次の手順で設定します。

asc app-availability create --app-id <APP_ID> --all-territories --available-in-new-territories
asc app-availability create --app-id <APP_ID> --territory USA --territory JPN [--available-in-new-territories]

--territory(繰り返し指定可能)または --all-territories(asc territories list にあるすべての地域)を指定します。REST では、{"territory": [...]} または {"all-territories": true} を指定して POST /api/v1/apps/:appId/availability を実行します。未リリースのアプリでは、すべての地域で CANNOT_SELL と AVAILABLE_FOR_SALE_UNRELEASED_APP が表示されます。リリース前であれば、これは想定どおりです。

約175の地域すべてと、そのステータスが返されます。主な contentStatuses の値は次のとおりです。

  • AVAILABLE — 通常どおり販売可能
  • CANNOT_SELL_RESTRICTED_RATING — 年齢レーティングにより、この地域での販売が制限されています
  • MISSING_RATING — 年齢レーティングが設定されていません
  • ICP_NUMBER_MISSING — 中国では ICP 番号が必要です
  • BRAZIL_REQUIRED_TAX_ID — ブラジルでは納税者番号が必要です
  • CANNOT_SELL_GAMBLING / CANNOT_SELL_CASINO — ギャンブルに関する制限
  • その他、30種類以上の具体的なブロック理由

すべての地域を一覧表示する

提供状況を設定する前に、有効な地域 ID を確認します。Apple には約175の地域があり、それぞれに ISO 形式の ID(例:USA、CHN、JPN)と通貨コードがあります。

asc territories list [--output table] [--pretty]

出力例:

ID    Currency
USA   USD
CHN   CNY
JPN   JPY
GBR   GBP
DEU   EUR
...

IAP の提供状況

現在の IAP の提供状況を取得する

IAP を現在利用できる地域を確認します。レスポンスには各地域の通貨コードも含まれます。

asc iap-availability get --iap-id <IAP_ID> [--pretty]

JSON レスポンスの例:

{
  "data": [
    {
      "id": "avail-1",
      "iapId": "iap-42",
      "isAvailableInNewTerritories": true,
      "territories": [
        { "id": "USA", "currency": "USD" },
        { "id": "CHN", "currency": "CNY" }
      ],
      "affordances": {
        "getAvailability": "asc iap-availability get --iap-id iap-42",
        "createAvailability": "asc iap-availability create --iap-id iap-42 ...",
        "listTerritories": "asc territories list"
      }
    }
  ]
}
IAP の提供状況を作成する

IAP を利用可能にする地域を設定します。各地域 ID を指定するには --territory(繰り返し指定可能)を使用し、Apple が将来追加する新しい地域を自動的に含めるには --available-in-new-territories を指定します。

asc iap-availability create \
  --iap-id <IAP_ID> \
  --available-in-new-territories \
  --territory USA \
  --territory CHN \
  --territory JPN
フラグ必須説明
--iap-idはい提供状況を設定する IAP ID
--available-in-new-territoriesいいえApple が追加する新しい地域を自動的に含めます
--territoryいいえ地域 ID(繰り返し指定可能)。有効な ID は asc territories list で確認できます

サブスクリプションの提供状況

現在のサブスクリプションの提供状況を取得する
asc subscription-availability get --subscription-id <SUB_ID> [--pretty]
サブスクリプションの提供状況を作成する
asc subscription-availability create \
  --subscription-id <SUB_ID> \
  --available-in-new-territories \
  --territory USA \
  --territory GBR
フラグ必須説明
--subscription-idはい提供状況を設定するサブスクリプション ID
--available-in-new-territoriesいいえApple が追加する新しい地域を自動的に含めます
--territoryいいえ地域 ID(繰り返し指定可能)

CAEOAS の利便機能

すべての提供状況レスポンスには、そのまま実行できる後続コマンドが含まれます。

{
  "affordances": {
    "getAvailability": "asc iap-availability get --iap-id <ID>",
    "createAvailability": "asc iap-availability create --iap-id <ID> ...",
    "listTerritories": "asc territories list"
  }
}

InAppPurchase モデルと Subscription モデルには、親リソースから移動するための getAvailability 利便機能も含まれます。

アプリ ID を解決する

project-context.md を参照してください。ユーザーに尋ねたり asc apps list を実行したりする前に、.asc/project.json を確認します。

一般的なワークフロー

APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')

# 1. Discover territories
asc territories list --output table

# 2. List IAPs for the app
asc iap list --app-id "$APP_ID"

# 3. Check current availability
asc iap-availability get --iap-id "$IAP_ID" --pretty

# 4. Set availability to specific territories with auto-include for future ones
asc iap-availability create --iap-id "$IAP_ID" \
  --available-in-new-territories \
  --territory USA --territory GBR --territory DEU --territory JPN

# Same flow for subscriptions:
asc subscriptions list --group-id "$GROUP_ID"
asc subscription-availability get --subscription-id "$SUB_ID"
asc subscription-availability create --subscription-id "$SUB_ID" \
  --available-in-new-territories \
  --territory USA --territory CHN

重要な概念

  • 地域 ID:App Store Connect で使用される ISO 形式の国コード(例:USA、CHN、JPN、GBR)。有効な ID は asc territories list で確認できます。
  • isAvailableInNewTerritories:true の場合、Apple が新しい地域を追加すると、IAP/サブスクリプションが自動的にその地域で利用可能になります。地域を厳密に制御する必要がない限り、ほとんどのアプリで推奨されます。
  • 通貨:各地域には対応する通貨(例:USD、CNY)があります。価格の基準を確認できるよう、提供状況のレスポンスでは地域 ID とともに表示されます。

コメント