相关 Skills
使用最新的 asc setup、pricing summary、price import 和 price schedule 命令,为订阅项目及 App 内购(IAP)配置特定国家/地区的差异化定价。适用于跨国价格微调或实施本地化 PPP(购买力平价)定价策略。
PPP 定价(分国家/地区定价)
使用此 Skill,基于购买力平价(PPP)或你自定义的区域定价策略,创建或更新跨国家/地区的本地化价格。
推荐使用当前的高阶工作流:
- 使用
asc subscriptions setup与asc iap setup创建父级资源并配置初始定价,随后再调用版本作用域的元数据命令 - 使用
asc subscriptions pricing ...变更订阅定价 - 使用
asc iap pricing summary与asc iap pricing schedules ...变更 IAP 定价
前置条件
- 确保已配置凭证(执行
asc auth login或设置ASC_*环境变量)。 - 推荐设置环境变量
ASC_APP_ID,或显式传入--app参数。 - 确定基准国家/地区(通常为
USA)及基准价格。 - 如需获取支持的国家/地区 ID 列表,可运行
asc pricing territories list --paginate。
订阅项目的 PPP 定价工作流
新建订阅:使用 setup 初始化父级资源并配置定价
使用 setup 创建订阅组和具体订阅项、上传 App 审核截图、自动生成完整的等价价格矩阵,并设置可售状态。随后再创建符合 API 4.4.1 规范的订阅组和订阅版本;setup 命令中的本地化标志使用的是已废弃的 v1 资源,切勿在新工作流中使用。
asc subscriptions setup \
--app "APP_ID" \
--group-reference-name "Pro" \
--reference-name "Pro Monthly" \
--product-id "com.example.pro.monthly" \
--subscription-period ONE_MONTH \
--review-screenshot "./review.png" \
--price "9.99" \
--price-territory "USA" \
--territories "USA,CAN,GBR" \
--no-verify \
--output json
从 setup 返回的 JSON 中提取 .groupId 与 .subscriptionId,随后添加版本作用域的元数据。此处使用 --no-verify 是故意为之:在没有使用废弃 v1 本地化的情况下,父级资源在完成 v2 步骤前会保持 MISSING_METADATA 状态。
asc subscriptions groups versions list --group-id "GROUP_ID" --state PREPARE_FOR_SUBMISSION --paginate --output json
# 当且仅当列表结果为空时:
asc subscriptions groups versions create --group-id "GROUP_ID" --output json
# 如果只有一条匹配记录,直接复用 .data[0].id。如果有等多条匹配,请停止操作并要求显式提供 GROUP_VERSION_ID。
asc subscriptions groups versions localizations list --version-id "GROUP_VERSION_ID" --paginate --output json
# 当且仅当缺失 en-US 时:
asc subscriptions groups versions localizations create --version-id "GROUP_VERSION_ID" --locale "en-US" --name "Pro"
# 否则,当且仅当解析出的 en-US 名称不一致时:
asc subscriptions groups versions localizations update --id "GROUP_LOC_ID" --name "Pro"
# 否则,不执行任何操作。
asc subscriptions versions list --subscription-id "SUB_ID" --state PREPARE_FOR_SUBMISSION --paginate --output json
# 当且仅当列表结果为空时:
asc subscriptions versions create --subscription-id "SUB_ID" --output json
# 如果只有一条匹配记录,直接复用 .data[0].id。如果有等多条匹配,请停止操作并要求显式提供 SUBSCRIPTION_VERSION_ID。
asc subscriptions versions localizations list --version-id "SUBSCRIPTION_VERSION_ID" --paginate --output json
# 当且仅当缺失 en-US 时:
asc subscriptions versions localizations create --version-id "SUBSCRIPTION_VERSION_ID" --locale "en-US" --name "Pro Monthly" --description "Unlock everything"
# 否则,当且仅当解析出的 en-US 字段值不一致时:
asc subscriptions versions localizations update --id "SUBSCRIPTION_LOC_ID" --name "Pro Monthly" --description "Unlock everything"
# 否则,不执行任何操作。
asc subscriptions groups versions localizations list --version-id "GROUP_VERSION_ID" --paginate --output table
asc subscriptions versions localizations list --version-id "SUBSCRIPTION_VERSION_ID" --paginate --output table
asc validate subscriptions --app "APP_ID" --output table
对于每个版本列表,直接复用其中唯一的 PREPARE_FOR_SUBMISSION 查询结果。仅在结果为空时才执行创建;如果返回了多条记录,请立即停止并要求提供显式的版本 ID,避免误建无法删除的冗余版本。本地化的“创建/更新”逻辑同样是有条件的:缺少该语言环境时创建,内容不同时更新已解析的本地化记录,若已完全匹配则不作变更。
注意要点:
setup会根据选定的基准价格,自动生成 Apple 完整的等价价格矩阵。这种分步工作流会将最终的校验步骤推迟到 v2 本地化创建完成后进行。- 若不在此类分步 v2 初始化流程中,请移除
--no-verify,以便setup执行正常的读取校验。 - 如果你的定价逻辑基于价格等级(Tier),请使用
--tier或--price-point-id替代--price。 - 如果已有订阅项目在基准价格相同的情况下仍停留在
MISSING_METADATA状态,请携带--repair参数重新运行 setup 输入,以便原子化地重建并重新保存价格矩阵。
在变更前检查当前的订阅定价
若想快速获取当前状态的简明快照,请优先使用 summary 视图。
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "USA"
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "IND"
asc subscriptions pricing prices list --subscription-id "SUB_ID" --paginate
使用 summary 进行变更前后的快速对比抽查;需要获取底层原始价格记录时,请使用 prices list。
推荐的大批量 PPP 更新方案:先预演(Dry Run)再导入 CSV
在全面推行 PPP 定价时,推荐使用订阅定价导入命令,而非手动逐个添加不同国家/地区的价格。
示例 CSV:
territory,price,start_date,preserved
IND,2.99,2026-04-01,false
BRA,4.99,2026-04-01,false
MEX,4.99,2026-04-01,false
DEU,8.99,2026-04-01,false
先进行预演(Dry-run):
asc subscriptions pricing prices import \
--subscription-id "SUB_ID" \
--input "./ppp-prices.csv" \
--dry-run \
--output table
正式应用变更:
asc subscriptions pricing prices import \
--subscription-id "SUB_ID" \
--input "./ppp-prices.csv" \
--confirm \
--output table
注意要点:
--dry-run会校验数据行并解析价格点(Price Point),但不会真正创建价格记录。--continue-on-error=false提供“快速失败(Fail-Fast)”模式。- CSV 必填列:
territory、price - CSV 可选列:
currency_code、start_date、preserved、preserve_current_price、price_point_id - 若未提供
price_point_id,CLI 会自动解析出该行国家/地区及价格所匹配的价格点。 - 导入时的国家/地区(Territory)可填入 3 字母 ID、2 字母代码,或能明确映射的标准名称。
单个/少量国家或地区的订阅价格调整
如果只需要手动覆盖少量国家/地区的价格,请使用标准的 set 命令。
asc subscriptions pricing prices set --subscription-id "SUB_ID" --price "2.99" --territory "IND"
asc subscriptions pricing prices set --subscription-id "SUB_ID" --tier 5 --territory "BRA"
asc subscriptions pricing prices set --subscription-id "SUB_ID" --price-point "PRICE_POINT_ID" --territory "DEU"
注意要点:
- 加上
--start-date "YYYY-MM-DD"可预约未来的价格变更。 - 加上
--preserved可保留当前的价格继承绑定关系。 - 该命令同时支持初始定价设置与后续的价格调整。
仅在必要时查询原始价格点(Price Point)
当你需要直接查看 Apple 的本地化阶梯价格或锁定精确的价格点 ID 时,请使用价格点查询与等价计算(Equalizations)命令。
asc subscriptions pricing price-points list --subscription-id "SUB_ID" --territory "USA" --paginate --price "9.99"
asc subscriptions pricing price-points equalizations --price-point-id "PRICE_POINT_ID" --paginate
asc subscriptions pricing price-points adjusted-equalizations --price-point-id "PRICE_POINT_ID" --upfront-price-point-id "UPFRONT_PRICE_POINT_ID" --plan-type MONTHLY --subscription-id "SUB_ID" --paginate
查询 Apple 标准本地化阶梯价格时使用 equalizations。需要使用符合 API 4.4.1 规范的订阅专属调整时,请使用 adjusted-equalizations。发起全新的 adjusted-equalizations 请求时,必须同时传入 --upfront-price-point-id 与 --plan-type;--subscription-id 与 --territory 为可选过滤条件。请将 --next 视为不透明的分页续传 URL。在恢复执行 equalizations 或 adjusted-equalizations 请求时,仅需传入 --next,无需再附带原本的 --price-point-id、过滤条件、稀疏字段(sparse fields)、包含项(includes)或数量限制(limit),因为续传 URL 中已包含了这些查询状态。--paginate 以及显式的输出标志仍可继续保留使用。
变更生效后的结果校验
完成变更后,重新运行 summary 与原始列表视图进行核验。
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "IND"
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "BRA"
asc subscriptions pricing prices list --subscription-id "SUB_ID" --paginate
当版本元数据创建完毕后,你可以开启校验机制重新运行 asc subscriptions setup,以重新核对父级资源、定价、截图及可售状态。
订阅项的可售状态(Availability)
如果需要显式地为现有订阅启用特定国家/地区,请使用 pricing availability 系列命令。
asc subscriptions pricing availability edit --subscription-id "SUB_ID" --territories "USA,CAN,IND,BRA"
asc subscriptions pricing availability view --subscription-id "SUB_ID"
App 内购(IAP)PPP 定价工作流
新建 IAP:使用 setup 初始化父级资源与价格计划
使用 setup 创建内购商品与初始价格计划。由于该命令中的本地化标志使用的是已废弃的 v1 资源,因此请在 setup 完成后,通过 API 4.4.1 的 IAP 版本来添加本地化信息。
asc iap setup \
--app "APP_ID" \
--type NON_CONSUMABLE \
--reference-name "Pro Lifetime" \
--product-id "com.example.pro.lifetime" \
--price "9.99" \
--base-territory "USA" \
--output json
从 setup 返回的 JSON 中提取 .iapId,随后创建版本与元数据:
asc iap versions list --iap-id "IAP_ID" --state PREPARE_FOR_SUBMISSION --paginate --output json
# 当且仅当列表结果为空时:
asc iap versions create --iap-id "IAP_ID" --output json
# 如果只有一条匹配记录,直接复用 .data[0].id。如果有等多条匹配,请停止操作并要求显式提供 IAP_VERSION_ID。
asc iap versions localizations list --version-id "IAP_VERSION_ID" --paginate --output json
# 当且仅当缺失 en-US 时:
asc iap versions localizations create --version-id "IAP_VERSION_ID" --locale "en-US" --name "Pro Lifetime" --description "Unlock everything forever"
# 否则,当且仅当解析出的 en-US 字段值不一致时:
asc iap versions localizations update --localization-id "IAP_LOC_ID" --name "Pro Lifetime" --description "Unlock everything forever"
# 否则,不执行任何操作。
复用唯一的 PREPARE_FOR_SUBMISSION 状态版本。仅当列表为空时才执行创建;若匹配到多个版本,请停止并请求显式提供版本 ID。仅在缺少 en-US 时创建本地化记录,仅在字段值不同时更新已解析的记录,否则不做任何处理。
注意要点:
setup默认会校验创建的 IAP 及价格计划;如需校验版本本地化信息,请使用其版本作用域下的查询列表命令。- 使用
--start-date设置定时生效的价格计划。 - 需要基于确定的 Tier 或价格点 ID 进行初始化时,可使用
--tier或--price-point-id。
在变更前检查当前的 IAP 定价
在进行 PPP 相关调整时,推荐将 asc iap pricing summary 作为查看当前状态的主要汇总视图。
asc iap pricing summary --iap-id "IAP_ID" --territory "USA"
asc iap pricing summary --iap-id "IAP_ID" --territory "IND"
该命令会返回所查询国家/地区的基准地区、当前价格、预估收益(Proceeds)以及已预约的价格变更计划。
探索候选的 IAP 价格点
当你需要排查或锁定精确的价格点 ID 时,请使用价格点查询命令。
asc iap pricing price-points list --iap-id "IAP_ID" --territory "USA" --paginate --price "9.99"
asc iap pricing price-point
<!-- truncated for translation batch; full body continues in source -->






