本文并非是教读者如何创建 IAP 档位,如何调用 StoreKit 相关 API,应付苹果审核,而是着重于介绍苹果在这次的 WWDC2020 中对于以往 IAP 相关开发与测试中的痛点,做出了哪些改进。食用本文的读者应该拥有一定的 IAP 开发经验。并站在在笔者自己的角度,对这些改进作出基于笔者自身经验的评价,例如对于个人开发者或者是大公司开发者有多大的价值等。
Sandbox 环境终于可以享受跟正式环境一样的手动取消自动订阅,不用新建沙盒测试账号就能重新体验首购优惠,退款,升降级等操作了。
开发者福音,苹果爸爸还是爱我们的,这个真的是极大节约了开发自动续费时的开发以及测试成本。
苹果做了一个 StoreKitTest 的库,方便自动化测试。
象征意义大于现实意义,在本人的工作经历下,深感自动化测试在目前国内的推进还是十分困难的。测试开发基本都是应用于接口测试。
现在在本地测试的时候,可以本地自建一个沙盒购买环境(StoreKit configuration)
对于个人独立开发者来说,有客户端校验订单的小型 APP,能节省相当一部分的成本;
对大型 App 开发者来说,需要一定的适配成本,大公司的订单都是放在服务器校验的,且都是专职人员负责维护一个 SDK,需要外部团队配套的改动(服务器的验证)还是有一定工作量的。
带 APP 版本
提审 IAP 档位,期待苹果审核爸爸不要给 2.1 大礼包
或者 3.1.2
相关拒审,并且在 包过审并且档位过审
后放出版本。笔者在两家公司都遇到过 App 过审但是内购 IAP 没有过的情况:)可以本地创建一个 StoreKit Configuration File
, 这样可以在本地直接控制沙盒环境,新建商品,包括首开优惠,自动续费控制下次扣款,取消订阅,控制家长监控购买(Ask to Buy)等等,功能还是十分完善的,可以说是 AppStore Connect 有的,StoreKit Configuration File
基本都能满足你。(除了没有非续期订阅这种类型)
+
号就能出现三个选项。这里的三种 IAP 类型在下面贴上新版 AppStore Connect 的介绍,应该足够对应了。当前缺少非续期订阅的类型,苹果没有说为什么只缺了这一种,可能觉得没啥必要吧 ...
StoreKit Configuration File
并没有这个限制。并且推荐使用语义化的创建方式,建议不要用纯数字或者随机生成的 ID,不然可读性不是很好。在非消耗型项目的选项里还有一个 Family Sharing 的选项,一笔带过了。
1
,可以通过拖动右侧的 2
按钮来调整,我的截图是全都是 1,这样处理起来逻辑简单一点:)在 Edit Scheme 中切换到 Options
Tab,再在 StoreKit Configuration
中选中你创建的 StoreKit 文件即可。
可以删除历史订单,删除首开优惠,可以退款等操作。还是十分方便的。
.storekit
文件之后,Editor 中就会出现选项,开启即可。然后购买之后就会展示 Ask to Buy 弹窗,订单状态是 Pending to Approval
,可以在 Xcode 中进行操作,允许或者不允许。
下图的 2 是 approve 按钮,3 是 deny 按钮。
这里需要注意的是,订单的校验方式会有所不同。虽然走的是苹果的非对称加密,但是是另一张证书,所以验证订单的时候需要使用 PKCS7_NOCHAIN
这个参数去标明。如果不在本地验证,则需要 对应的服务器逻辑也进行响应更改
。
同时,.cer 文件也是可以导出的。导出方式也在 Editor-Save Public Certificate
。
沙盒账号终于有管理页面了
你知道这几年没有管理页面我是怎么过来的吗:)
放一张我们之前申请的沙盒账号,都已经创建到 300 了,都是因为要测各种首开优惠:
在 iOS14 的设备上,设置 - App Store - 翻到最下面登陆沙盒账号之后,单击沙盒账号,再点击 Manage 就可以进入管理页面啦!
管理页面提供了多项功能
在 User & Access 中,Edit 开启选项即可。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8