配置 iOS 沙盒测试
复制一个包含安装步骤和本插件的完整Markdown指南的设置命令。
在App Store Connect和测试设备上正确配置后,才能在iOS上进行测试购买。这份指南涵盖了您需要了解的所有内容,以便开始使用沙盒测试。
前提条件
标题为“前提条件”的部分- Apple Developer Program: 活跃会员资格,需要每年续费
- Agreements: 已签署“付费应用程序协议”,并已完成银行和税务信息
- Xcode Project: 配置了正确的包标识符和功能
Setup Process
:-
Sign Paid Applications Agreement
在 App Store Connect 中,导航到 协议、税务和银行 并完成:
- 签署付费应用程序协议
- 添加银行信息
- 完成税务表格
等待 Apple 批准您的信息(这可能需要 24-48 小时)。
-
创建沙盒测试用户
在 App Store Connect 中,转到 用户和访问 > 沙盒测试者.
点击 + 按钮创建一个新的沙盒测试者。
注意事项: 使用一个尚未与 Apple ID 关联的电子邮件地址。您可以使用电子邮件别名:
- Gmail:
youremail+test@gmail.com - iCloud:
youremail+test@icloud.com

- Gmail:
-
配置测试设备 (iOS 12+)
从 iOS 12 开始,您不再需要退出 iTunes 帐户以测试购买。
在您的 iOS 设备上:
- 打开 设置
- 点击 App Store
- 向下滚动到底部
- 点击 沙盒账户
- 使用您的沙盒测试账户登录
-
配置Xcode项目
确保您的Xcode项目具有:
包标识符
- 必须与您的开发者中心中的标识符匹配
- 必须与App Store Connect中的标识符匹配
In-App 购买功能
- 在 Xcode 中选择您的项目
- 转到 签名 & 能力
- 点击 + 能力
- 添加 In-App 购买
-
创建 In-App 购买产品
在 App Store Connect 中,导航到您的应用并创建您的 In-App 购买产品(订阅、消耗性产品等)。
产品必须至少处于“准备提交”状态才能进行沙盒测试。
-
测试您的实现
在测试设备上构建并运行您的应用程序。当您尝试购买时,您应该看到:
[环境:沙盒]
此确认表明您处于沙盒环境中,不会被收取实时货币。
重要说明
标题:重要说明沙盒环境特征
标题:沙盒环境特征- 无实时收费: 在沙盒模式下,所有购买都是免费的
- 加速订阅: 订阅周期缩短以加快测试
- 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 purchaseconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', productType: PURCHASE_TYPE.SUBS,});
console.log('Test purchase successful!', transaction.transactionId);验证
标题:验证当配置正确时,您应该观察到:
- 沙盒标签 在购买时:‘[环境:沙盒]’
- 产品加载 成功
- 购买完成 无实际费用
- 凭证验证 正确
- 自动续订 自动续订(加速率)
故障排除
故障排除产品未加载:
- 确认 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 中使用:”
- 这是新沙盒账户的正常情况
- 继续购买以激活账户
- 仅在首次使用时发生
最佳实践
名为“最佳实践”的部分- 创建多个测试账户 用于不同的测试场景
- 测试所有订阅时长 以验证行为
- 测试取消和续订 流程
- 验证收据验证 正确工作
- 测试恢复购买 功能性
- 检查订阅升级/降级 行为
- 测试网络条件差
生产环境与沙盒环境
生产环境与沙盒环境| 功能 | 沙盒环境 | 生产环境 |
|---|---|---|
| 实时收费 | 否 | 是 |
| __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沙盒测试继续
名为“从配置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中