介绍 Xcode 中 StoreKit 测试

989次阅读  |  发布于4年以前

本文并非是教读者如何创建 IAP 档位,如何调用 StoreKit 相关 API,应付苹果审核,而是着重于介绍苹果在这次的 WWDC2020 中对于以往 IAP 相关开发与测试中的痛点,做出了哪些改进。食用本文的读者应该拥有一定的 IAP 开发经验。并站在在笔者自己的角度,对这些改进作出基于笔者自身经验的评价,例如对于个人开发者或者是大公司开发者有多大的价值等。

本地沙盒购买环境

回顾之前的 IAP 开发体验

  1. 登陆 AppStore Connect,新建 APP
  2. 创建对应的 IAP 档位,看苹果服务器心情,大致在 2 小时之后就能在沙盒环境中访问到对应 ProductId 的商品
  3. 创建沙盒账号
  4. 如果苹果沙盒服务器给面子,一切顺利的话,可以开始测试。笔者是经常遇到沙盒环境的登陆不上去,以及根本连不上沙盒环境,希望苹果的沙盒可以更稳定一点 ...
  5. 带 APP 版本 提审 IAP 档位,期待苹果审核爸爸不要给 2.1 大礼包 或者 3.1.2 相关拒审,并且在 包过审并且档位过审 后放出版本。笔者在两家公司都遇到过 App 过审但是内购 IAP 没有过的情况:)

现在的改进

可以本地创建一个 StoreKit Configuration File, 这样可以在本地直接控制沙盒环境,新建商品,包括首开优惠,自动续费控制下次扣款,取消订阅,控制家长监控购买(Ask to Buy)等等,功能还是十分完善的,可以说是 AppStore Connect 有的,StoreKit Configuration File 基本都能满足你。(除了没有非续期订阅这种类型)

操作步骤

  1. 创建模版文件,完成之后选中新创建的空文件

2. 创建对应类型的商品,点击左下角的 + 号就能出现三个选项。

这里的三种 IAP 类型在下面贴上新版 AppStore Connect 的介绍,应该足够对应了。当前缺少非续期订阅的类型,苹果没有说为什么只缺了这一种,可能觉得没啥必要吧 ...

3. 消耗型项目的创建

在非消耗型项目的选项里还有一个 Family Sharing 的选项,一笔带过了。

4. 自动续期订阅型项目的创建

5. 应用 StoreKit 文件

在 Edit Scheme 中切换到 Options Tab,再在 StoreKit Configuration 中选中你创建的 StoreKit 文件即可。

6. 本地管理订单状态

可以删除历史订单,删除首开优惠,可以退款等操作。还是十分方便的。

下图的 2 是 approve 按钮,3 是 deny 按钮。

本地的订单校验

这里需要注意的是,订单的校验方式会有所不同。虽然走的是苹果的非对称加密,但是是另一张证书,所以验证订单的时候需要使用 PKCS7_NOCHAIN 这个参数去标明。如果不在本地验证,则需要 对应的服务器逻辑也进行响应更改

同时,.cer 文件也是可以导出的。导出方式也在 Editor-Save Public Certificate

沙盒环境的改进

沙盒账号终于有管理页面了 你知道这几年没有管理页面我是怎么过来的吗:)

放一张我们之前申请的沙盒账号,都已经创建到 300 了,都是因为要测各种首开优惠:

在 iOS14 的设备上,设置 - App Store - 翻到最下面登陆沙盒账号之后,单击沙盒账号,再点击 Manage 就可以进入管理页面啦!

管理页面提供了多项功能

  1. 切换购买项目,可以测试同一个 Group 内的升降级
  2. 重制享受过的首开优惠,可以同一个沙盒账号反复测试首开优惠,而不用新开账号
  3. 取消订阅 在以前,这些都是做不到的,可以说是极大程度方便了 QA 跟 RD 的验证。

AppStore Connect 上设置沙盒账号的 Interuptted Purchase

在 User & Access 中,Edit 开启选项即可。

另外一些期待的改进

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8