关于本地测试内购的一些流程

391 阅读3分钟

本地校验购买流程

在 Xcode 中使用 StoreKit 测试环境可以帮助开发者在没有真实 App Store 配置的情况下模拟和测试内购流程。Xcode 12 及以上版本提供了此功能,方便开发者在开发阶段测试内购体验,避免多次提交至 App Store Connect。

创建 StoreKit 配置文件 步骤:

  1. 打开 Xcode 项目,选择 File > New > File。
  2. 在弹出窗口中,找到 StoreKit Configuration File,然后点击 Next。
  3. 为文件命名(如 StoreKitConfiguration.storekit)并保存到项目目录中。
  4. StoreKit 配置文件会显示在项目导航中,双击打开即可编辑。

添加内购商品

打开 .storekit 文件后,可以手动添加模拟商品信息:

  1. 在左侧边栏中,点击 Add In-App Purchase。
  2. 选择商品类型(如消耗型 Non-Consumable 或订阅型 Subscriptions)。
  3. 配置商品 ID、名称、价格等信息,使之模拟实际的商品数据。
    • 商品 ID 应与应用代码中用于内购请求的 ID 保持一致。
    • 可以为每个商品设置不同的价格,方便测试各种价格情况。

配置测试环境

要让 Xcode 运行时使用该 .storekit 配置文件,需进行以下设置:

  1. 在 Xcode 中点击 Product > Scheme > Edit Scheme,然后选择 Run 选项。
  2. 在左侧选择 Options 标签。
  3. 在 StoreKit Configuration 下拉菜单中选择刚才创建的 .storekit 文件。
  4. 点击 Close 保存配置。 这样设置后,应用在运行时会自动使用 StoreKit 测试环境,而非实际的 App Store 环境。

运行并测试内购流程

完成配置后,您可以像实际内购那样在模拟器或测试设备上运行应用:

  1. 当应用调用内购流程(如 SKProductsRequest 请求)时,StoreKit 测试环境将提供 .storekit 文件中的商品信息。
  2. 通过应用的购买按钮,发起购买流程,系统将模拟弹出购买确认窗口(无需真实支付)。
  3. 测试环境可以直接模拟成功、失败、取消等购买结果,帮助调试各种场景。
    • 购买完成后,可以在应用中验证购买成功流程。
    • 也可以测试恢复购买、取消购买等操作。

模拟其他内购场景

StoreKit 测试环境还支持模拟更多内购场景:

  • 订阅过期:可以在 .storekit 文件中配置订阅的有效时间,模拟订阅期满场景。
  • 取消或恢复订阅:在测试过程中,您可以在 Xcode 的 StoreKit Debug 菜单中选择 Subscription Options 来取消或恢复订阅。
  • 购买失败或网络错误:可以使用 StoreKit Testing 中的调试选项,模拟网络问题或支付失败,验证应用的错误处理逻辑。

查看交易记录和调试信息

Xcode 提供 StoreKit Manager 面板,帮助查看和管理当前会话的交易信息:

  1. 运行应用时,点击 Xcode 的 Debug > StoreKit 菜单,选择 Show StoreKit Manager。
  2. 在 StoreKit Manager 中,可以看到所有交易的状态、时间和商品详情。
  3. 可以手动重置交易,或在调试过程中清除交易记录,方便重复测试。

StoreKit 测试注意事项

  • 模拟器和真机均支持 StoreKit 测试,但只有在 Xcode 中配置 .storekit 文件后才会启用模拟环境。
  • 代码中避免混淆真实环境:建议在测试时使用条件编译或测试标识,确保测试代码不会影响实际应用发布。
  • 验证完成逻辑:由于内购过程模拟较为简化,需在实际发布前确保 App Store 的真实环境中可以正常完成所有流程。

总结

Xcode 的 StoreKit 测试环境通过 .storekit 配置文件帮助开发者模拟各种内购场景,既减少了频繁上传 App Store Connect 的时间,又提高了测试的准确性。