关于 asc-availability
通过 `asc` 命令行工具查看和管理 App、内购及订阅在各地区的可用性,帮助开发者排查销售限制并配置市场范围。
主要功能
- 01查看 App 可用性及受限原因
- 02按地区设置 App 可用性
- 03管理内购和订阅的销售地区
- 04列出地区 ID 与货币
- 05自动纳入新增地区
适用场景
- 01排查 App 在某地区无法销售的原因
- 02限制内购或订阅的销售市场
- 03在新增地区开放产品销售
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-availability安装后在 Claude Code 中输入/asc-availability确认已加载。
详细介绍
App、IAP 和订阅的地区可用性
管理 App、应用内购买项目或订阅在哪些 App Store 地区(国家/地区)可用。这对于控制地区分发至关重要,例如了解 App 为何在某些国家/地区被屏蔽、将订阅限制在特定市场,或让 IAP 在全球范围内可用。
App 可用性(按地区显示状态)
最详细的可用性视图——显示每个地区的 isAvailable(true/false)、通过 contentStatuses 显示的屏蔽原因、releaseDate 和 isPreOrderEnabled。
asc app-availability get --app-id <APP_ID> [--pretty]
如果尚未设置 App 的可用性(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。尚未发布的 App 在每个地区都会显示 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 应在哪些地区可用。使用 --territory(可重复传入)指定各地区 ID,并使用 --available-in-new-territories 自动纳入 Apple 未来新增的地区。
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(可重复传入)。使用 asc territories list 查找有效 ID |
订阅可用性
获取当前订阅可用性
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 便捷操作,可从父资源导航到可用性信息。
解析 App 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)。使用asc territories list查看所有有效 ID。 isAvailableInNewTerritories:设为true时,Apple 会自动让 IAP/订阅在其新增的任何地区可用。除非需要严格控制地区范围,否则大多数 App 都建议启用此选项。- 货币:每个地区都有对应的货币(例如
USD、CNY)。可用性响应会在地区 ID 旁显示货币,便于了解定价所用的货币。