一、 目的
使用个人的非付费的开发账号,结合In-App Purchase开发的技术本身,存在如下的痛点:
-
沙盒测试需要进入App Store Connect进行配置沙盒账号和商品;
-
必须使用App对应的付费的开发账号进行开发;
对比之下,使用Xcode中的StoreKit有如下优点:
-
不需要进入App Store Connect进行配置,直接在Xcode中配置中配置商品;
-
StoreKit的所有回调与正式沙盒一致;
-
不再依赖付费的开发者账号,普通账号同样可以进行开发;
-
更方便的控制测试环境;
-
无需网络连接;
二、 Xcode中的StoreKit开发
-
创建StoreKit配置文件
StoreKit 配置文件包含应用内购买、订阅组、自动续订订阅和非续订订阅的描述。当配置文件处于活动状态时,当我们在测试环境中调用 StoreKit API 时,StoreKit 会使用此数据。 StoreKit 配置文件有两种类型:本地配置文件和 Xcode 14 及更高版本中的同步配置文件。
-
如果已经在 App Store Connect 中设置了应用内购买或订阅并想在 Xcode 中测试,在新建时,可以选择同步配置文件;
-
如果没有App Store Connect中配置,也可以在配置本地文件之后,同步到App Store Connect;
创建配置文件:
- Xcode > "File" > "New" > "File",或者是快捷键:"command + n"
- 窗口右上角搜索storeKit
-
选中StoreKit Configuration File,单击 “Next”
-
输入文件名称,如果需要同步,可以选中复选框并选择对应的开发者账号和App,然后单击“Next”。
建议不要勾选复选框,这样生成的配置文件只作为本地测试
- 选择保存的文件路径,单击“Create”。
这步选择的文件路径可以随意些,放在桌面上也是可以的。
- 将文件拖到项目里。
如果需要重命名配置文件,一定不能修改文件扩展名.storekit。
-
设置StoreKit配置文件
在Xcode中选中创建好的配置文件,在右侧窗口的左下角点击“添加”按钮(+)可以新增产品信息。
如果在创建时,选择了同步,我们需要将同步配置文件转为本地配置文件,否则的话无法编辑。
转换步骤:
-
选中文件
-
Xcode > Editor > Convert to Local StoreKit
-
在Xcode中启用StoreKit测试
编辑好的配置文件,默认是不启用的,需要我们做如下设置:
- 点击 scheme,选择Edit Scheme.
- 依次点击 Run > Options > StoreKit Configuration,选择我们配置好的文件,点击 Close
- 准备在测试环境中验证收据
Xcode中的StoreKit测试会生成本地签名的收据,因此需要配置本地验证所需要的证书。步骤如下:
-
选中 StoreKit 配置 文件.
-
Xcode > Editor > Save Public Certificate.
c. 选择保存的路径
-
试用Xcode中的StoreKit
在完成以上的工作之后,我们就可以进行购买的测试了。
一切和付费账号下的沙盒测试一样,只是我们不再需要去切换开发者账号,不再需要登录沙盒的AppleID,在自己的开发机器上,用自己的非付费的开发者账号就可以进行完整的测试,还能更加方便的进行测试环境的控制。
在上图的位置,我们可以进行货币单位、国家等设置。
在上图中,我们可以对自建的自动订阅产品进行编辑。
在我们完成购买之后,可以在Xcode中查看订单:
如果是订阅产品,删除该记录,即表示清空订阅记录,可以方便我们进行下次的订阅测试。
三、可能存在的版本适配问题
在Xcode16.3,iOS 18.3.1,MacOS 15.4.1的环境下,如果修改了Store文件中的如下配置:
比如将Default Storefront修改为China CNY,将Default Localization修改为 Chinese (Simplified),可能会出现应用的内存使用异常增长。
使用默认配置则不会出现上述问题。
四、 最后几句
StoreKit涉及的场景和内容很多,在实际的使用中,大家可以多参考下官方文档。地址如下: