跳过内容

配置 iOS 沙盒测试

GitHub

在App Store Connect和测试设备上正确配置后,才能在iOS上进行测试购买。这份指南涵盖了您需要了解的所有内容,以便开始使用沙盒测试。

  • Apple Developer Program: 活跃会员资格,需要每年续费
  • Agreements: 已签署“付费应用程序协议”,并已完成银行和税务信息
  • Xcode Project: 配置了正确的包标识符和功能

Setup Process

:
  1. Sign Paid Applications Agreement

    在 App Store Connect 中,导航到 协议、税务和银行 并完成:

    • 签署付费应用程序协议
    • 添加银行信息
    • 完成税务表格

    等待 Apple 批准您的信息(这可能需要 24-48 小时)。

  2. 创建沙盒测试用户

    在 App Store Connect 中,转到 用户和访问 > 沙盒测试者.

    点击 + 按钮创建一个新的沙盒测试者。

    注意事项: 使用一个尚未与 Apple ID 关联的电子邮件地址。您可以使用电子邮件别名:

    • Gmail: youremail+test@gmail.com
    • iCloud: youremail+test@icloud.com

    创建沙盒测试者

  3. 配置测试设备 (iOS 12+)

    从 iOS 12 开始,您不再需要退出 iTunes 帐户以测试购买。

    在您的 iOS 设备上:

    1. 打开 设置
    2. 点击 App Store
    3. 向下滚动到底部
    4. 点击 沙盒账户
    5. 使用您的沙盒测试账户登录
  4. 配置Xcode项目

    确保您的Xcode项目具有:

    包标识符

    • 必须与您的开发者中心中的标识符匹配
    • 必须与App Store Connect中的标识符匹配

    In-App 购买功能

    1. 在 Xcode 中选择您的项目
    2. 转到 签名 & 能力
    3. 点击 + 能力
    4. 添加 In-App 购买
  5. 创建 In-App 购买产品

    在 App Store Connect 中,导航到您的应用并创建您的 In-App 购买产品(订阅、消耗性产品等)。

    产品必须至少处于“准备提交”状态才能进行沙盒测试。

  6. 测试您的实现

    在测试设备上构建并运行您的应用程序。当您尝试购买时,您应该看到:

    [环境:沙盒]

    此确认表明您处于沙盒环境中,不会被收取实时货币。

沙盒环境特征

标题:沙盒环境特征
  • 无实时收费: 在沙盒模式下,所有购买都是免费的
  • 加速订阅: 订阅周期缩短以加快测试
    • 1周订阅=3分钟
    • 1 个月订阅 = 5 分钟
    • 2 个月订阅 = 10 分钟
    • 3 个月订阅 = 15 分钟
    • 6 个月订阅 = 30 分钟
    • 1 年订阅 = 1 小时
  • 自动续订限制: 在沙盒中,订阅将自动续订至 6 次
  • 立即取消: 取消的订阅将立即失效

沙盒账户管理

标题:沙盒账户管理
  • 创建多个测试账户以适应不同场景
  • 仅在测试设备上使用测试帐户
  • 不要在沙盒测试中使用个人Apple ID
  • 测试帐户无论地域都可以购买任何产品

使用沙盒测试

标题:使用沙盒测试
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { isBillingSupported } = await NativePurchases.isBillingSupported();
if (!isBillingSupported) {
throw new Error('StoreKit not supported on this device');
}
// Fetch products (automatically uses sandbox when available)
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly'],
productType: PURCHASE_TYPE.SUBS,
});
// Make test purchase
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Test purchase successful!', transaction.transactionId);

当配置正确时,您应该观察到:

  1. 沙盒标签 在购买时:‘[环境:沙盒]’
  2. 产品加载 成功
  3. 购买完成 无实际费用
  4. 凭证验证 正确
  5. 自动续订 自动续订(加速率)

故障排除

故障排除

产品未加载:

  • 确认 bundle identifier 与 App Store Connect 匹配
  • 确认协议已签署并已批准
  • 确保产品至少处于“已准备好提交”状态
  • 等待创建产品后2-3小时

“Cannot connect to iTunes Store”:

  • 确认sandbox账户配置正确
  • 检查设备是否连接到互联网
  • 尝试注销并重新登录sandbox账户
  • 重启应用

购买失败静默:

  • 检查Xcode控制台错误消息
  • 确认In-App购买功能已启用
  • 确保sandbox账户邮箱不是真实Apple ID
  • 尝试创建新的sandbox测试账户

错误的收据验证:

  • 测试时使用沙盒收据验证端点
  • 生产端点: https://buy.itunes.apple.com/verifyReceipt
  • 沙盒端点: https://sandbox.itunes.apple.com/verifyReceipt
  • native-purchases插件会自动处理

错误的订阅时长:

  • 请记住,沙盒中订阅会被加速
  • 使用上面的转换表来获取预期时长
  • 沙盒中订阅最多自动续费 6 次

“这个 Apple ID 还没有在 iTunes Store 中使用:”

  • 这是新沙盒账户的正常情况
  • 继续购买以激活账户
  • 仅在首次使用时发生
  1. 创建多个测试账户 用于不同的测试场景
  2. 测试所有订阅时长 以验证行为
  3. 测试取消和续订 流程
  4. 验证收据验证 正确工作
  5. 测试恢复购买 功能性
  6. 检查订阅升级/降级 行为
  7. 测试网络条件差

生产环境与沙盒环境

生产环境与沙盒环境
功能沙盒环境生产环境
实时收费
__CAPGO_KEEP_0__时长__CAPGO_KEEP_1____CAPGO_KEEP_2__
__CAPGO_KEEP_3____CAPGO_KEEP_4____CAPGO_KEEP_5__
__CAPGO_KEEP_6____CAPGO_KEEP_7____CAPGO_KEEP_8__
__CAPGO_KEEP_9____CAPGO_KEEP_10____CAPGO_KEEP_11__
仅测试账号

更多详细信息,请参阅 苹果官方StoreKit文档 关于沙盒测试的说明。

如果您正在使用 配置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中