本地校验购买流程
在 Xcode 中使用 StoreKit 测试环境可以帮助开发者在没有真实 App Store 配置的情况下模拟和测试内购流程。Xcode 12 及以上版本提供了此功能,方便开发者在开发阶段测试内购体验,避免多次提交至 App Store Connect。
创建 StoreKit 配置文件 步骤:
- 打开 Xcode 项目,选择 File > New > File。
- 在弹出窗口中,找到 StoreKit Configuration File,然后点击 Next。
- 为文件命名(如 StoreKitConfiguration.storekit)并保存到项目目录中。
- StoreKit 配置文件会显示在项目导航中,双击打开即可编辑。
添加内购商品
打开 .storekit 文件后,可以手动添加模拟商品信息:
- 在左侧边栏中,点击 Add In-App Purchase。
- 选择商品类型(如消耗型 Non-Consumable 或订阅型 Subscriptions)。
- 配置商品 ID、名称、价格等信息,使之模拟实际的商品数据。
- 商品 ID 应与应用代码中用于内购请求的 ID 保持一致。
- 可以为每个商品设置不同的价格,方便测试各种价格情况。
配置测试环境
要让 Xcode 运行时使用该 .storekit 配置文件,需进行以下设置:
- 在 Xcode 中点击 Product > Scheme > Edit Scheme,然后选择 Run 选项。
- 在左侧选择 Options 标签。
- 在 StoreKit Configuration 下拉菜单中选择刚才创建的 .storekit 文件。
- 点击 Close 保存配置。 这样设置后,应用在运行时会自动使用 StoreKit 测试环境,而非实际的 App Store 环境。
运行并测试内购流程
完成配置后,您可以像实际内购那样在模拟器或测试设备上运行应用:
- 当应用调用内购流程(如 SKProductsRequest 请求)时,StoreKit 测试环境将提供 .storekit 文件中的商品信息。
- 通过应用的购买按钮,发起购买流程,系统将模拟弹出购买确认窗口(无需真实支付)。
- 测试环境可以直接模拟成功、失败、取消等购买结果,帮助调试各种场景。
- 购买完成后,可以在应用中验证购买成功流程。
- 也可以测试恢复购买、取消购买等操作。
模拟其他内购场景
StoreKit 测试环境还支持模拟更多内购场景:
- 订阅过期:可以在 .storekit 文件中配置订阅的有效时间,模拟订阅期满场景。
- 取消或恢复订阅:在测试过程中,您可以在 Xcode 的 StoreKit Debug 菜单中选择 Subscription Options 来取消或恢复订阅。
- 购买失败或网络错误:可以使用 StoreKit Testing 中的调试选项,模拟网络问题或支付失败,验证应用的错误处理逻辑。
查看交易记录和调试信息
Xcode 提供 StoreKit Manager 面板,帮助查看和管理当前会话的交易信息:
- 运行应用时,点击 Xcode 的 Debug > StoreKit 菜单,选择 Show StoreKit Manager。
- 在 StoreKit Manager 中,可以看到所有交易的状态、时间和商品详情。
- 可以手动重置交易,或在调试过程中清除交易记录,方便重复测试。
StoreKit 测试注意事项
- 模拟器和真机均支持 StoreKit 测试,但只有在 Xcode 中配置 .storekit 文件后才会启用模拟环境。
- 代码中避免混淆真实环境:建议在测试时使用条件编译或测试标识,确保测试代码不会影响实际应用发布。
- 验证完成逻辑:由于内购过程模拟较为简化,需在实际发布前确保 App Store 的真实环境中可以正常完成所有流程。
总结
Xcode 的 StoreKit 测试环境通过 .storekit 配置文件帮助开发者模拟各种内购场景,既减少了频繁上传 App Store Connect 的时间,又提高了测试的准确性。