跳过内容

配置 iOS 沙盒测试

GitHub

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

前提条件

前提条件部分
  • Apple Developer Program: 每年续费的活跃会员
  • 协议:已签署的“付费应用程序协议”,银行和税务信息已完成
  • Xcode 项目: 配置了合适的包名和功能
  1. 签署付费应用协议

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

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

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

  2. 创建沙盒测试用户

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

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

    重要:使用一个不已与苹果ID相关联的电子邮件地址。您可以使用电子邮件别名:

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

    创建沙盒测试器

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

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

    在您的 iOS 设备上:

    1. 打开 设置
    2. 点击 应用商店
    3. 滚动到底部
    4. 点击 沙盒帐户
    5. 使用您的沙盒测试帐户登录
  4. 配置Xcode项目

    确保您的Xcode项目具有:

    包标识符

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

    内购功能

    1. 在Xcode中选择您的项目
    2. 转到 签名 & 能力
    3. 点击 功能性能力
    4. 添加 内购
  5. 创建内购产品

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

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

  6. 测试您的实现

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

    [环境:沙盒]

    这确认您处于沙盒环境中,不会被收取真实的钱。

重要注意事项

重要注意事项

沙盒环境特征

沙盒环境特征
  • 无实际费用: 在沙盒模式下所有购买均免费
  • 加速订阅: 订阅周期缩短以加快测试
    • 1周订阅 = 3分钟
    • 1个月订阅 = 5分钟
    • 2个月订阅 = 10分钟
    • 3个月订阅 = 15分钟
    • 6个月订阅 = 30分钟
    • 1 年订阅 = 1 小时
  • 自动续订限制:sandbox 中的订阅自动续订至 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. 订阅将自动续期 自动续期(加速率)

故障排除

故障排除

产品未加载:

  • 确认 App Store Connect 中的包名匹配
  • 确认协议已签署并通过
  • 确认产品至少达到“准备提交”状态
  • 创建产品后等待 2-3 小时

“无法连接到 iTunes Store”:

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

购买失败静默:

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

收据验证错误:

  • 在测试中使用沙盒收据验证端点
  • 生产端点: https://buy.itunes.apple.com/verifyReceipt
  • 沙盒端点: https://sandbox.itunes.apple.com/verifyReceipt
  • 原生购买插件会自动处理

错误的订阅时长:

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

“This Apple ID has not yet been used in the iTunes Store”:

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

生产环境 vs. 测试环境

生产环境 vs. 测试环境
功能测试环境生产环境
实际费用
订阅时长加速正常
自动续订限制6 次无限制
取消效果立即期限结束
收据端点沙盒 URL生产 URL
仅测试账户

额外资源

附加资源

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

从配置iOS沙盒测试继续

如果您正在使用

Configure iOS Sandbox Testing 来规划商店批准和分发,连接它到 使用@__CAPGO_KEEP_0__/native-purchases 在使用@capgo/native-purchases的原生能力中 @capgo/__CAPGO_KEEP_1__-in-app-review @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的原生能力