跳过内容

创建 iOS 自动续订订阅

GitHub

自动续订订阅提供 iOS 应用程序中的内容、服务或高级功能的重复访问。该指南将指导您在 App Store Connect 中创建订阅。

自动续订订阅将在每个billing周期结束时自动续订,直到用户取消。它们适用于:

  • 高级内容和功能
  • 广告免费体验
  • 云存储和同步
  • 流媒体服务
  • 专业工具和实用工具

前提条件

前提条件

在创建订阅之前,必须:

  1. 创建订阅组 以组织您的订阅
  2. 拥有有效的Apple Developer Program会员资格
  3. 在App Store Connect中完成银行和税务信息

创建订阅

订阅创建
  1. 前往订阅

    在 App Store Connect 中,选择您的应用并转到 Monetize > 订阅.

    选择您的订阅组或如果需要创建一个新的

    前往订阅

  2. 创建新订阅

    点击 + 订阅组旁边的

  3. 添加新订阅

    输入基本信息: __CAPGO_KEEP_0__(用于内部使用,不向客户展示)

    • 例如:“Premium Monthly”,“Ultimate Annual”,“Basic Plan”

    产品 ID: 本订阅的唯一标识符(不能在后期更改)

    • 格式: com.yourcompany.yourapp.premium_monthly
    • 使用有描述性的、全小写的名称,使用下划线
    • 必需用于配置 native-purchases 插件

    输入订阅详细信息

  4. 配置时长

    从可用选项中选择订阅时长:

    • 1 周
    • 1 个月
    • 2个月
    • 3个月
    • 6个月
    • 1年

    计费周期决定用户每月被收费的频率。

  5. 设置定价

    点击 添加订阅价格 配置定价:

    基本地区: 选择您的主要市场(通常是您的国家)

    价格: 设置订阅价格

    • Apple 自动转换为其他货币
    • 从 Apple 的价格等级中选择
    • 考虑到人们对产品的价值感和市场价格

    配置价格

  6. 家庭共享(可选)

    决定是否启用家庭共享功能,允许最多 6 名家庭成员访问订阅。

    启用条件:

    • 内容适合家庭使用
    • 您想提高价值提议
    • 您的商业模式支持它

    不启用如果:

    • 订阅仅限个人使用
    • 内容是针对用户的个人化
    • 您想最大化每用户的收入
  7. 添加本地化

    在您的应用支持的所有语言中添加订阅显示信息:

    订阅显示名称:客户端名称(例如,“每月优质”)

    :订阅所包含的简要描述:订阅所包含的详细描述

    • 保持简洁,注重利益
    • 提及关键功能
    • 突出价值主张

    添加本地化

  8. App Store 推广图片(可选)

    上传此订阅的推广图片(312x390 像素):

    • 在 App Store 订阅页面显示
    • 应与您的应用设计相匹配
    • 包含订阅名称以提高清晰度
  9. 保存并提交

    点击 保存 以创建订阅。

    首次订阅:

    • 必须与新应用程序版本一起提交
    • 包含在下一个App Store提交中
    • 不能独立提交

    后续订阅:

    • 可以直接从订阅页面提交
    • 不需要新应用程序版本
    • 在首次订阅批准后可用

订阅状态

订阅状态

您的订阅将具有以下状态之一:

状态描述是否可以测试?
缺少元数据设置不完整是(沙盒)
准备提交已完成但未提交是(沙盒)
等待审核已提交至苹果是(沙盒)
在审核苹果正在审核是(沙盒)
已通过可供购买
被拒绝需要修改是(沙盒)

在您的应用中使用

标题:在您的应用中使用

创建订阅后,请使用产品 ID引用该订阅:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch subscription products direct from StoreKit
const { products } = await NativePurchases.getProducts({
productIdentifiers: [
'com.yourcompany.yourapp.premium_monthly',
'com.yourcompany.yourapp.premium_annual',
],
productType: PURCHASE_TYPE.SUBS,
});
products.forEach((product) => {
console.log(`${product.title}: ${product.priceString}`);
console.log(`Duration: ${product.subscriptionPeriod}`);
console.log(`Description: ${product.description}`);
});
// Purchase a subscription (StoreKit 2 automatically handles intro pricing and offers)
try {
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.yourcompany.yourapp.premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Transaction ID:', transaction.transactionId);
// StoreKit receipts are included on iOS for server-side validation
await sendReceiptToBackend(transaction.receipt);
} catch (error) {
console.error('Purchase failed:', error);
}
// Check subscription status using the store's data
const { purchases } = await NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
const premium = purchases.find(
(purchase) => purchase.productIdentifier === 'com.yourcompany.yourapp.premium_monthly',
);
if (premium?.isActive) {
console.log('Expires:', premium.expirationDate);
console.log('Will renew:', premium.willCancel === false);
console.log('Store state:', premium.subscriptionState);
unlockPremiumFeatures();
} else {
showPaywall();
}

每月付款,12 个月的承诺计划

标题:每月付款,12 个月的承诺计划

如果您的 App Store Connect 订阅配置为每月付款并且有 12 个月的承诺,StoreKit 可以返回该产品的额外定价条款。使用这些条款来显示每月付款金额、总承诺价格和全承诺期限之前购买。

const yearlyProduct = products.find(
(product) => product.identifier === 'com.yourcompany.yourapp.premium_annual',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
(term) => term.billingPlanType === 'monthly',
);
if (yearlyProduct && monthlyCommitment) {
console.log('Monthly charge:', monthlyCommitment.billingDisplayPrice);
console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);
await NativePurchases.purchaseProduct({
productIdentifier: yearlyProduct.identifier,
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
});
}

查看完整的付墙和权限流程,见 iOS 月度承诺计费计划.

最佳实践

最佳实践

定价策略

定价策略
  • 月度计划:降低门槛,培养习惯
  • 年度计划:更好的价值,高的LTV,低的流失率
  • 多个等级:针对不同用户群的基本,高级,最高级
  • 竞争分析: 研究类似应用的定价
  • 保持一致的命名: company.app.tier_duration
  • 包含等级和持续时间在 ID 中: premium_monthly, ultimate_annual
  • 避免更改产品 ID(它们是永久的)
  • 为团队记录所有产品 ID

家庭共享

家庭共享部分
  • 为家庭导向的应用(游戏、教育、娱乐)启用(建议)
  • 考虑对收入的影响
  • 彻底测试共享行为
  • 营销中宣传共享功能

本地化

本地化
  • 翻译所有订阅名称和描述
  • 考虑区域价格差异
  • 在所有支持语言中测试显示
  • 使用适当的营销语言

促销图片

促销图片
  • 保持一致的视觉风格
  • 包含订阅名称和关键优势
  • 更新季节性促销
  • 匹配应用的整体设计语言

常见的订阅模式

常见订阅模式

单层(免费版)

单层(免费版)
Free App + Premium Subscription
- Basic: Free (limited features)
- Premium Monthly: $4.99
- Premium Annual: $39.99 (save 33%)

多层(好、更好、最好)

多层(好、更好、最好)
- Basic Monthly: $4.99
- Premium Monthly: $9.99
- Ultimate Monthly: $19.99
- Basic Annual: $49.99
- Premium Annual: $99.99
- Ultimate Annual: $199.99

可消耗 + 订阅混合

可消耗 + 订阅混合
- Credit packs (consumable)
- Monthly subscription (unlimited credits)
- Annual subscription (unlimited + bonus features)

故障排除

故障排除

应用中无法加载订阅:

  • 确认产品 ID 与 (区分大小写)
  • 检查订阅是否在订阅组中
  • 确保 bundle identifier 与 App Store Connect 匹配
  • 创建产品后等待 2-3 小时

无法提交订阅:

  • 完成所有必填字段(名称、描述、价格)
  • 添加至少一个本地化
  • 确认银行/税务信息已通过认证
  • 检查是否有首个订阅(需要应用版本)

__CAPGO_KEEP_0__:家长共享功能已被禁用:

  • __CAPGO_KEEP_0__:已启用(无法禁用)
  • __CAPGO_KEEP_0__:查看订阅细节
  • __CAPGO_KEEP_0__:如果卡住,请联系苹果支持

__CAPGO_KEEP_0__:价格等级不可用:

  • __CAPGO_KEEP_0__:可能在某些地区受限制
  • __CAPGO_KEEP_0__:选择替代等级
  • __CAPGO_KEEP_0__:关于价格问题,请联系苹果

__CAPGO_KEEP_0__:“无效产品ID”错误:

  • __CAPGO_KEEP_0__:必须以反向域名格式
  • __CAPGO_KEEP_0__:不能包含空格或特殊字符
  • __CAPGO_KEEP_0__:检查拼写错误
  • 验证所有产品中的唯一性

额外资源

附加资源

更多详细信息,请参阅 苹果官方文档关于自动续订订阅.

从创建 iOS 自动续订订阅继续

从创建 iOS 自动续订订阅继续

如果您正在使用 创建 iOS 自动续订订阅 规划商店审批和分发时,连接它到 使用 @capgo/native-purchases 在使用 @capgo/native-purchases 的原生能力中 使用 @capgo/capacitor-in-app-review 在 @capgo/capacitor-in-app-review 的实现细节中 使用@capgo/capacitor-in-app-review 为@capgo/capacitor-in-app-review中的原生功能 @capgo/capacitor-native-market 为@capgo/capacitor-native-market中的实现细节 使用@capgo/capacitor-native-market 为@capgo/capacitor-native-market中的原生功能