沙盒测试
在 Adapty 看板和移动应用中完成所有配置后,就可以进行应用内购买测试了。
注意: 无论使用哪种测试工具,测试购买产品时均不会向用户收费。App Store 也不会针对测试环境中的购买或退款发送电子邮件。
在进行应用内购买测试前,请确认以下事项:
- 您已完成 快速入门 指南中关于商店集成、添加产品和 Adapty SDK 集成的步骤。
- 您的产品在 App Store Connect 中已标记为 Ready to submit。
沙盒测试
我们建议在真实设备上测试应用内购买。虽然沙盒购买可以在模拟器上运行,但要完整测试所有流程(包括支付对话框和生物识别提示),仍需使用真实设备。
您有两种主要方式来测试应用内购买:
- 在 Xcode 中构建并在测试设备上运行:适合开发者和 QA 工程师。
- 使用沙盒测试账号配合 TestFlight:适合其他人员。
以下指南将介绍这两种方式。
步骤 1:在 App Store Connect 中创建沙盒测试账号
请创建一个全新的沙盒测试账号,以确保购买历史记录为空。如果复用现有账号,之前购买过的产品将仍然可用,您将无法再次测试购买这些产品。
您可以通过以下几步快速创建新的沙盒测试账号:
- 在 App Store Connect 中前往 Users and Access > Sandbox > Test Accounts,然后点击 +。
- 填写测试用户详情。请务必设置 Country or Region,因为这会影响该地区的产品可用性和购买货币。
- 如果您使用 Gmail 或 iCloud,可以通过加号子地址复用现有邮箱地址。
- 您也可以使用一个甚至不存在的随机邮箱地址,但请确保在之后登录测试设备时拒绝双重认证(2FA)。
- 点击 Create。
步骤 2:启用开发者模式
如果您的测试设备上已启用开发者模式,或者您没有 Mac 设备,请跳过此步骤。
您需要一台安装了 Xcode 的 Mac 以及测试设备的数据线:
- 在 Mac 上打开 Xcode。如果您要通过 TestFlight 测试应用内购买,只需安装 Xcode 即可,无需在其中打开应用。
- 使用数据线将测试设备连接到 Mac。
- 在测试设备上前往 Settings > Privacy & Security > Developer Mode,并开启 Developer Mode。
步骤 3:从 TestFlight 下载应用
此步骤仅适用于通过 TestFlight 进行测试的情况。如果您在 Xcode 中构建应用,请跳过此步骤。
有关将应用提交到 TestFlight 的详细信息,请参阅 Apple 官方文档。
在下载 TestFlight 应用之前,请确保您的测试设备已使用正式 Apple 账号登录,然后从 TestFlight 下载您要测试的应用。
下载后请勿立即打开应用,直接进行后续步骤。 如果不小心已打开,请从测试设备中删除应用并重新下载。否则,您的购买历史记录可能不为空,测试应用内购买时将导致错误。
步骤 4:切换到沙盒测试账号
没有 Mac?这里有个变通方法
如果您不使用 macOS,则无法通过 Xcode 切换到沙盒账号。但您仍然可以直接在测试设备上完成操作:
- 在测试设备上前往 Settings > Your Apple Account > Media & Purchases。
- 在弹出菜单中选择 Sign Out。
- 打开从 TestFlight 下载的应用并尝试购买产品。
- 当提示登录时,输入您的沙盒账号凭据以切换到沙盒环境。
切换到沙盒账号的步骤:
- 在测试设备上前往 Settings > Your Apple Account > Media & Purchases。
- 在弹出菜单中选择 Sign Out。
- 前往 Settings > Developer。如果 Developer 选项不可用,请确认您已在步骤 2 中启用了该选项。
- 向下滚动到 Sandbox Apple Account 部分,点击 Sign In。
- 使用您的沙盒 Apple 账号凭据登录。
步骤 5:清除购买历史记录
如果您刚创建了新的沙盒测试账号并已切换到该账号,可以跳过此步骤,因为它仅适用于使用同一沙盒测试账号重复测试的情况。
- 在测试设备上前往 Settings > Developer > Sandbox Apple Account。
- 在弹出菜单中选择 Manage。
- 进入 Account Settings 并点击 Clear Purchase History。
每次使用同一沙盒测试账号重复测试时,都必须执行此步骤。此时,您还需要退出沙盒测试账号,然后重新登录,以清除测试设备上的购买历史缓存。
步骤 6:在 Xcode 中构建并运行
此步骤仅适用于通过 Xcode 构建进行测试的情况。如果您使用 TestFlight,请跳过此步骤。
- 将测试设备连接到 Mac。
- 打开 Xcode。
- 点击工具栏中的 Run,或选择 Product > Run 在连接的设备上构建并运行应用。
如果构建成功,Xcode 将在您的设备上启动应用,并在调试区域打开一个调试会话。
您的应用现在已准备好在设备上进行测试。
步骤 7:进行测试购买
打开应用,通过付费墙进行测试购买。
完成后,请查阅验证测试购买文章以检查您的结果。
步骤 8:继续测试
现在,您的测试环境已全部就绪。如果您想再次进行测试,请清除沙盒账号的购买历史记录。
测试问题
以下是测试应用时可能遇到的常见问题。
TestFlight 问题
如果您在没有沙盒测试账号的情况下使用 TestFlight,将无法清除购买历史记录,从而导致各种问题和不准确的测试结果。
如果您不小心忘记切换到沙盒测试账号并哪怕只打开了一次应用,TestFlight 就会将您的购买历史记录关联到正式 Apple 账号,从而带来意想不到的问题。
解决方法如下:
- 从测试设备中删除应用。
- 按照沙盒测试的步骤重新操作。
重要的是,不仅要重新安装应用,还要切换到沙盒测试账号、清除购买历史记录,并使用沙盒测试账号启动应用。
共享访问等级问题
如果您使用同一沙盒测试账号重复测试,可能会遇到测试用户共享访问等级的异常行为。
要检查用户是否具有继承的访问等级,请从 Adapty 看板前往 Profiles & Segments 并打开该用户的用户画像。
如果用户具有继承的访问等级,请按照以下步骤获得准确的测试结果:
- 删除父级用户画像。
- 从测试设备中删除应用。
- 从 TestFlight 下载应用。
- 切换到沙盒测试账号。
- 清除购买历史记录。
- 打开应用并进行测试购买。
在 TestFlight 中更新应用
如果 TestFlight 应用已更新:
- 从测试设备中删除应用。
- 从 TestFlight 下载应用。
- 切换到沙盒测试账号。
- 清除购买历史记录。
- 打开应用并进行测试购买。
购买过程中的身份验证
如果您已下载 TestFlight 应用但未从设备设置中登录沙盒账号,则在购买过程中登录将不起作用。要使购买成功,您必须在尝试购买之前从设备设置中登录沙盒账号。
测试订阅
使用沙盒测试账号测试应用时,您可以为沙盒中的每位测试人员设置订阅续订频率。更多关于编辑订阅续订频率的信息,请参阅 Apple 官方文档。
默认情况下,订阅最多续订 12 次后停止,具体时间表如下:
| 订阅时长 | 1 周 | 1 个月 | 2 个月 | 3 个月 | 6 个月 | 1 年 |
|---|---|---|---|---|---|---|
| 订阅续订速度 | 3 分钟 | 5 分钟 | 10 分钟 | 15 分钟 | 30 分钟 | 1 小时 |
| 账单重试时长 | 10 分钟 | 10 分钟 | 10 分钟 | 10 分钟 | 10 分钟 | 10 分钟 |
| 账单宽限期时长 | 3 分钟 | 5 分钟 | 5 分钟 | 5 分钟 | 5 分钟 | 5 分钟 |
请注意,测试交易最多需要 10 分钟才能出现在事件动态中。
测试优惠
测试优惠需要删除所有用户收据,才能使资格判断正常工作。
测试优惠最可靠的方式是使用全新的沙盒测试账号。使用同一沙盒测试账号重复测试可能会导致意外行为。
如果您使用同一沙盒测试账号重复测试,请务必清除购买历史记录,以避免与资格相关的问题。