asc-subscriptions
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseasc Subscriptions
asc 订阅管理
Manage auto-renewable subscription groups, tiers, and localizations via the CLI.
asc通过 CLI管理自动续费订阅组、订阅层级及本地化设置。
ascSubscription Groups
订阅组
bash
undefinedbash
undefinedList
列出订阅组
asc subscription-groups list --app-id <APP_ID>
asc subscription-groups list --app-id <APP_ID>
Create
创建订阅组
asc subscription-groups create
--app-id <APP_ID>
--reference-name "Premium Plans"
--app-id <APP_ID>
--reference-name "Premium Plans"
undefinedasc subscription-groups create
--app-id <APP_ID>
--reference-name "Premium Plans"
--app-id <APP_ID>
--reference-name "Premium Plans"
undefinedSubscriptions
订阅
bash
undefinedbash
undefinedList
列出订阅
asc subscriptions list --group-id <GROUP_ID>
asc subscriptions list --group-id <GROUP_ID>
Create
创建订阅
asc subscriptions create
--group-id <GROUP_ID>
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
[--family-sharable]
[--group-level 1]
--group-id <GROUP_ID>
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
[--family-sharable]
[--group-level 1]
**`--period`** values: `ONE_WEEK`, `ONE_MONTH`, `TWO_MONTHS`, `THREE_MONTHS`, `SIX_MONTHS`, `ONE_YEAR`asc subscriptions create
--group-id <GROUP_ID>
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
[--family-sharable]
[--group-level 1]
--group-id <GROUP_ID>
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
[--family-sharable]
[--group-level 1]
**`--period`** 参数可选值:`ONE_WEEK`, `ONE_MONTH`, `TWO_MONTHS`, `THREE_MONTHS`, `SIX_MONTHS`, `ONE_YEAR`Subscription Localizations
订阅本地化
bash
undefinedbash
undefinedList
列出本地化设置
asc subscription-localizations list --subscription-id <SUBSCRIPTION_ID>
asc subscription-localizations list --subscription-id <SUBSCRIPTION_ID>
Create
创建本地化设置
asc subscription-localizations create
--subscription-id <SUBSCRIPTION_ID>
--locale en-US
--name "Monthly Premium"
[--description "Full access, billed monthly"]
--subscription-id <SUBSCRIPTION_ID>
--locale en-US
--name "Monthly Premium"
[--description "Full access, billed monthly"]
undefinedasc subscription-localizations create
--subscription-id <SUBSCRIPTION_ID>
--locale en-US
--name "Monthly Premium"
[--description "Full access, billed monthly"]
--subscription-id <SUBSCRIPTION_ID>
--locale en-US
--name "Monthly Premium"
[--description "Full access, billed monthly"]
undefinedSubscription Introductory Offers
订阅介绍性优惠
bash
undefinedbash
undefinedList
列出介绍性优惠
asc subscription-offers list --subscription-id <SUBSCRIPTION_ID>
asc subscription-offers list --subscription-id <SUBSCRIPTION_ID>
Create free trial
创建免费试用优惠
asc subscription-offers create
--subscription-id <SUBSCRIPTION_ID>
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
--subscription-id <SUBSCRIPTION_ID>
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
asc subscription-offers create
--subscription-id <SUBSCRIPTION_ID>
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
--subscription-id <SUBSCRIPTION_ID>
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
Create paid intro offer (price point required for PAY_AS_YOU_GO / PAY_UP_FRONT)
创建付费介绍性优惠(PAY_AS_YOU_GO / PAY_UP_FRONT模式需指定价格点ID)
asc subscription-offers create
--subscription-id <SUBSCRIPTION_ID>
--duration THREE_MONTHS
--mode PAY_AS_YOU_GO
--periods 3
--territory USA
--price-point-id <PRICE_POINT_ID>
--subscription-id <SUBSCRIPTION_ID>
--duration THREE_MONTHS
--mode PAY_AS_YOU_GO
--periods 3
--territory USA
--price-point-id <PRICE_POINT_ID>
**`--duration`** values: `THREE_DAYS`, `ONE_WEEK`, `TWO_WEEKS`, `ONE_MONTH`, `TWO_MONTHS`, `THREE_MONTHS`, `SIX_MONTHS`, `ONE_YEAR`
**`--mode`** values: `FREE_TRIAL`, `PAY_AS_YOU_GO`, `PAY_UP_FRONT` — paid modes require `--price-point-id`asc subscription-offers create
--subscription-id <SUBSCRIPTION_ID>
--duration THREE_MONTHS
--mode PAY_AS_YOU_GO
--periods 3
--territory USA
--price-point-id <PRICE_POINT_ID>
--subscription-id <SUBSCRIPTION_ID>
--duration THREE_MONTHS
--mode PAY_AS_YOU_GO
--periods 3
--territory USA
--price-point-id <PRICE_POINT_ID>
**`--duration`** 参数可选值:`THREE_DAYS`, `ONE_WEEK`, `TWO_WEEKS`, `ONE_MONTH`, `TWO_MONTHS`, `THREE_MONTHS`, `SIX_MONTHS`, `ONE_YEAR`
**`--mode`** 参数可选值:`FREE_TRIAL`, `PAY_AS_YOU_GO`, `PAY_UP_FRONT` —— 付费模式需指定`--price-point-id`参数Subscription Offer Codes
订阅优惠码
Manage offer codes for subscriptions. Offer codes let you distribute promotional codes with specific eligibility rules and offer terms.
管理订阅的优惠码。优惠码可用于分发带有特定资格规则和优惠条款的促销码。
List Offer Codes
列出优惠码
bash
asc subscription-offer-codes list --subscription-id <SUBSCRIPTION_ID> [--pretty]bash
asc subscription-offer-codes list --subscription-id <SUBSCRIPTION_ID> [--pretty]Create Offer Code
创建优惠码
bash
asc subscription-offer-codes create \
--subscription-id <SUBSCRIPTION_ID> \
--name "SUMMER2026" \
--duration ONE_MONTH \
--mode FREE_TRIAL \
--periods 1 \
--eligibility NEW \
--eligibility LAPSED \
--offer-eligibility STACKABLE--eligibilityNEWLAPSEDWIN_BACKPAID_SUBSCRIBER--offer-eligibilitySTACKABLEINTRODUCTORYSUBSCRIPTION_OFFER--duration--modeFREE_TRIALPAY_AS_YOU_GOPAY_UP_FRONTbash
asc subscription-offer-codes create \
--subscription-id <SUBSCRIPTION_ID> \
--name "SUMMER2026" \
--duration ONE_MONTH \
--mode FREE_TRIAL \
--periods 1 \
--eligibility NEW \
--eligibility LAPSED \
--offer-eligibility STACKABLE--eligibilityNEWLAPSEDWIN_BACKPAID_SUBSCRIBER--offer-eligibilitySTACKABLEINTRODUCTORYSUBSCRIPTION_OFFER--duration--modeFREE_TRIALPAY_AS_YOU_GOPAY_UP_FRONTUpdate Offer Code (activate/deactivate)
更新优惠码(激活/停用)
bash
asc subscription-offer-codes update --offer-code-id <ID> --active falsebash
asc subscription-offer-codes update --offer-code-id <ID> --active falseCustom Codes
自定义码
Custom codes are specific redeemable strings (e.g. "SUMMER2026") tied to an offer code.
bash
undefined自定义码是与优惠码绑定的可兑换特定字符串(例如"SUMMER2026")。
bash
undefinedList
列出自定义码
asc subscription-offer-code-custom-codes list --offer-code-id <ID>
asc subscription-offer-code-custom-codes list --offer-code-id <ID>
Create
创建自定义码
asc subscription-offer-code-custom-codes create
--offer-code-id <ID>
--custom-code "SUMMER2026"
--number-of-codes 1000
[--expiration-date 2026-12-31]
--offer-code-id <ID>
--custom-code "SUMMER2026"
--number-of-codes 1000
[--expiration-date 2026-12-31]
asc subscription-offer-code-custom-codes create
--offer-code-id <ID>
--custom-code "SUMMER2026"
--number-of-codes 1000
[--expiration-date 2026-12-31]
--offer-code-id <ID>
--custom-code "SUMMER2026"
--number-of-codes 1000
[--expiration-date 2026-12-31]
Deactivate
停用自定义码
asc subscription-offer-code-custom-codes update --custom-code-id <ID> --active false
undefinedasc subscription-offer-code-custom-codes update --custom-code-id <ID> --active false
undefinedOne-Time Use Codes
一次性使用码
Generated code batches — Apple creates unique codes for distribution.
bash
undefined由Apple生成的批量唯一兑换码,用于分发。
bash
undefinedList
列出一次性使用码
asc subscription-offer-code-one-time-codes list --offer-code-id <ID>
asc subscription-offer-code-one-time-codes list --offer-code-id <ID>
Create
创建一次性使用码
asc subscription-offer-code-one-time-codes create
--offer-code-id <ID>
--number-of-codes 5000
--expiration-date 2026-12-31
--offer-code-id <ID>
--number-of-codes 5000
--expiration-date 2026-12-31
asc subscription-offer-code-one-time-codes create
--offer-code-id <ID>
--number-of-codes 5000
--expiration-date 2026-12-31
--offer-code-id <ID>
--number-of-codes 5000
--expiration-date 2026-12-31
Deactivate
停用一次性使用码
asc subscription-offer-code-one-time-codes update --one-time-code-id <ID> --active false
undefinedasc subscription-offer-code-one-time-codes update --one-time-code-id <ID> --active false
undefinedCAEOAS Affordances
CAEOAS 便捷操作
Every subscription group response embeds ready-to-run follow-up commands:
SubscriptionGroup:
json
{
"affordances": {
"listSubscriptions": "asc subscriptions list --group-id <ID>",
"createSubscription": "asc subscriptions create --group-id <ID> --name <name> --product-id <id> --period ONE_MONTH"
}
}Subscription:
json
{
"affordances": {
"createIntroductoryOffer": "asc subscription-offers create --subscription-id <ID> --duration ONE_MONTH --mode FREE_TRIAL --periods 1",
"createLocalization": "asc subscription-localizations create --subscription-id <ID> --locale en-US --name <name>",
"listIntroductoryOffers": "asc subscription-offers list --subscription-id <ID>",
"listLocalizations": "asc subscription-localizations list --subscription-id <ID>",
"listOfferCodes": "asc subscription-offer-codes list --subscription-id <ID>"
}
}SubscriptionOfferCode:
json
{
"affordances": {
"listOfferCodes": "asc subscription-offer-codes list --subscription-id <SUBSCRIPTION_ID>",
"listCustomCodes": "asc subscription-offer-code-custom-codes list --offer-code-id <ID>",
"listOneTimeCodes": "asc subscription-offer-code-one-time-codes list --offer-code-id <ID>",
"deactivate": "asc subscription-offer-codes update --offer-code-id <ID> --active false"
}
}deactivateisActive == true每个订阅组的响应结果中都嵌入了可直接执行的后续命令:
SubscriptionGroup:
json
{
"affordances": {
"listSubscriptions": "asc subscriptions list --group-id <ID>",
"createSubscription": "asc subscriptions create --group-id <ID> --name <name> --product-id <id> --period ONE_MONTH"
}
}Subscription:
json
{
"affordances": {
"createIntroductoryOffer": "asc subscription-offers create --subscription-id <ID> --duration ONE_MONTH --mode FREE_TRIAL --periods 1",
"createLocalization": "asc subscription-localizations create --subscription-id <ID> --locale en-US --name <name>",
"listIntroductoryOffers": "asc subscription-offers list --subscription-id <ID>",
"listLocalizations": "asc subscription-localizations list --subscription-id <ID>",
"listOfferCodes": "asc subscription-offer-codes list --subscription-id <ID>"
}
}SubscriptionOfferCode:
json
{
"affordances": {
"listOfferCodes": "asc subscription-offer-codes list --subscription-id <SUBSCRIPTION_ID>",
"listCustomCodes": "asc subscription-offer-code-custom-codes list --offer-code-id <ID>",
"listOneTimeCodes": "asc subscription-offer-code-one-time-codes list --offer-code-id <ID>",
"deactivate": "asc subscription-offer-codes update --offer-code-id <ID> --active false"
}
}仅当时,才会显示命令。
isActive == truedeactivateResolve App ID
获取App ID
See project-context.md — check before asking the user or running .
.asc/project.jsonasc apps list参考project-context.md —— 在询问用户或执行命令前,先检查文件。
asc apps list.asc/project.jsonTypical Workflow
典型工作流
bash
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')bash
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'
asc apps list | jq -r '.data[0].id'若为空:询问用户或执行asc apps list | jq -r '.data[0].id'
asc apps list | jq -r '.data[0].id'1. Create a subscription group
1. 创建订阅组
GROUP_ID=$(asc subscription-groups create
--app-id "$APP_ID"
--reference-name "Premium Plans"
| jq -r '.data[0].id')
--app-id "$APP_ID"
--reference-name "Premium Plans"
| jq -r '.data[0].id')
GROUP_ID=$(asc subscription-groups create
--app-id "$APP_ID"
--reference-name "Premium Plans"
| jq -r '.data[0].id')
--app-id "$APP_ID"
--reference-name "Premium Plans"
| jq -r '.data[0].id')
2. Create subscription tiers
2. 创建订阅层级
MONTHLY_ID=$(asc subscriptions create
--group-id "$GROUP_ID"
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
--group-level 1
| jq -r '.data[0].id')
--group-id "$GROUP_ID"
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
--group-level 1
| jq -r '.data[0].id')
ANNUAL_ID=$(asc subscriptions create
--group-id "$GROUP_ID"
--name "Annual Premium"
--product-id "com.app.annual"
--period ONE_YEAR
--family-sharable
--group-level 2
| jq -r '.data[0].id')
--group-id "$GROUP_ID"
--name "Annual Premium"
--product-id "com.app.annual"
--period ONE_YEAR
--family-sharable
--group-level 2
| jq -r '.data[0].id')
MONTHLY_ID=$(asc subscriptions create
--group-id "$GROUP_ID"
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
--group-level 1
| jq -r '.data[0].id')
--group-id "$GROUP_ID"
--name "Monthly Premium"
--product-id "com.app.monthly"
--period ONE_MONTH
--group-level 1
| jq -r '.data[0].id')
ANNUAL_ID=$(asc subscriptions create
--group-id "$GROUP_ID"
--name "Annual Premium"
--product-id "com.app.annual"
--period ONE_YEAR
--family-sharable
--group-level 2
| jq -r '.data[0].id')
--group-id "$GROUP_ID"
--name "Annual Premium"
--product-id "com.app.annual"
--period ONE_YEAR
--family-sharable
--group-level 2
| jq -r '.data[0].id')
3. Add localizations
3. 添加本地化设置
asc subscription-localizations create --subscription-id "$MONTHLY_ID" --locale en-US --name "Monthly Premium" --description "Full access, billed monthly"
asc subscription-localizations create --subscription-id "$ANNUAL_ID" --locale en-US --name "Annual Premium" --description "Full access, billed annually — save 30%"
asc subscription-localizations create --subscription-id "$MONTHLY_ID" --locale en-US --name "Monthly Premium" --description "Full access, billed monthly"
asc subscription-localizations create --subscription-id "$ANNUAL_ID" --locale en-US --name "Annual Premium" --description "Full access, billed annually — save 30%"
4. Create an offer code with custom codes
4. 创建带自定义码的优惠码
OC_ID=$(asc subscription-offer-codes create
--subscription-id "$MONTHLY_ID"
--name "SUMMER2026"
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
--eligibility NEW
--eligibility LAPSED
--offer-eligibility STACKABLE
| jq -r '.data[0].id')
--subscription-id "$MONTHLY_ID"
--name "SUMMER2026"
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
--eligibility NEW
--eligibility LAPSED
--offer-eligibility STACKABLE
| jq -r '.data[0].id')
asc subscription-offer-code-custom-codes create
--offer-code-id "$OC_ID"
--custom-code "SUMMER2026"
--number-of-codes 1000
--expiration-date 2026-12-31
--offer-code-id "$OC_ID"
--custom-code "SUMMER2026"
--number-of-codes 1000
--expiration-date 2026-12-31
OC_ID=$(asc subscription-offer-codes create
--subscription-id "$MONTHLY_ID"
--name "SUMMER2026"
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
--eligibility NEW
--eligibility LAPSED
--offer-eligibility STACKABLE
| jq -r '.data[0].id')
--subscription-id "$MONTHLY_ID"
--name "SUMMER2026"
--duration ONE_MONTH
--mode FREE_TRIAL
--periods 1
--eligibility NEW
--eligibility LAPSED
--offer-eligibility STACKABLE
| jq -r '.data[0].id')
asc subscription-offer-code-custom-codes create
--offer-code-id "$OC_ID"
--custom-code "SUMMER2026"
--number-of-codes 1000
--expiration-date 2026-12-31
--offer-code-id "$OC_ID"
--custom-code "SUMMER2026"
--number-of-codes 1000
--expiration-date 2026-12-31
5. Or generate one-time use codes
5. 或生成一次性使用码
asc subscription-offer-code-one-time-codes create
--offer-code-id "$OC_ID"
--number-of-codes 5000
--expiration-date 2026-12-31
--offer-code-id "$OC_ID"
--number-of-codes 5000
--expiration-date 2026-12-31
undefinedasc subscription-offer-code-one-time-codes create
--offer-code-id "$OC_ID"
--number-of-codes 5000
--expiration-date 2026-12-31
--offer-code-id "$OC_ID"
--number-of-codes 5000
--expiration-date 2026-12-31
undefinedState Semantics
状态语义
SubscriptionState| Boolean | True when state is |
|---|---|
| |
| |
| |
SubscriptionCustomerEligibilityNEWLAPSEDWIN_BACKPAID_SUBSCRIBERSubscriptionOfferEligibilitySTACKABLEINTRODUCTORYSUBSCRIPTION_OFFERNil optional fields (, , , ) are omitted from JSON output.
descriptionstategroupLeveltotalNumberOfCodesSubscriptionState| 布尔值 | 为True时对应的状态 |
|---|---|
| |
| |
| |
SubscriptionCustomerEligibilityNEWLAPSEDWIN_BACKPAID_SUBSCRIBERSubscriptionOfferEligibilitySTACKABLEINTRODUCTORYSUBSCRIPTION_OFFERJSON输出中会省略可选的空字段(如, , , )。
descriptionstategroupLeveltotalNumberOfCodes