StoreKit|沙盒测试环境
沙盒测试概述 - App Store Connect - 帮助 - Apple Developer
StoreKit 测试 vs 沙盒测试
测试 StoreKit 有两种方式:使用 StoreKit 配置文件或使用沙盒账户。
StoreKit 配置文件测试
- 完全本地化的测试环境
- 使用本地配置文件定义的产品和价格
- 不需要网络连接,不需要 App Store Connect 账户
沙盒测试
- 使用你在 App Store Connect 中实际配置的产品
- 需要网络连接,连接到 Apple 的真实沙盒服务器
- 需要专门的沙盒测试账户(在 App Store Connect 中创建)
- 模拟真实的付款流程,但不会产生实际费用
沙盒测试方式除了不会真实收取费用之外,其他流程和正式环境基本一致。
通常,我会在早期开发和快速迭代测试时使用 StoreKit 配置文件测试。在开发基本完成之后,正式上线之前,会再做一次沙盒测试。
创建沙盒测试账户
在 App Store Connect 中,点击用户和访问 -> 测试账户 -> 沙盒,创建一个测试账户:


添加测试员后,其姓名、电子邮件地址和密码均无法再更改。
使用沙盒测试账户
沙盒测试账户适用场景

- Xcode 本地编译的版本
在开发阶段,直接从 Xcode 构建并运行的应用。
此时,无需将应用二进制文件上传至 App Store Connect 即可在沙盒环境中进行测试。
- 使用 TestFlight 安装的测试版本
在 Beta 测试期间,通过 TestFlight 下载的应用。
避免在模拟器中登录沙盒账户
模拟器不支持登录沙盒账户,会提示 Password reuse not available for account The account state does not support password reuse
错误。
务必使用真实设备进行测试。
在真实设备上登录沙盒账户
在系统设置 -> 开发者,滑到底部,即可登录在 App Store Connect 中登录的沙盒测试账户:


沙盒测试环境 expirationDate 问题
使用沙盒账户购买订阅后,订阅到期时间(transaction.expirationDate
)会显示为当日(无论购买月订阅还是年订阅)。
这是正常现象,因为在沙盒环境中,订阅刷新时间被大幅度减少:

常见错误
Password reuse not available for account The account state does not support password reuse

避免在模拟器上登录沙盒账户,使用真实设备。
