沙盒测试

在 Adapty 看板和移动应用中完成所有配置后,就可以开始进行应用内购买测试了。 注意: 所有测试工具在用户测试购买产品时均不会实际扣款。App Store 不会针对测试环境中的购买或退款发送邮件通知。

沙盒交易不会显示在任何分析数据图表中。 它们仍会出现在各个用户画像页面和事件流中。

在进行应用内购买测试之前,请确保:

  • 你已完成快速入门指南,包括商店集成、添加产品以及 Adapty SDK 集成。
  • 你的产品在 App Store Connect 中已标记为 Ready to submit

沙盒测试

我们建议在真机上测试内购。沙盒购买可以在模拟器上运行,但支付弹窗和生物识别提示等完整流程需要在真机上测试。

测试内购主要有两种方式:

  • 在 Xcode 中构建并在测试设备上运行:适合开发者和 QA 工程师。
  • 使用沙盒测试账号配合 TestFlight:适合其他所有人。

以下指南将分别介绍这两种方式。

步骤 1. 在 App Store Connect 中创建沙盒测试账户

请创建一个新的沙盒测试账户,以确保购买记录是干净的。如果复用已有账户,之前购买过的产品仍会保持可用状态,你将无法再次测试购买这些产品。

只需几步即可创建新的沙盒测试账户:

  1. 在 App Store Connect 中进入 Users and Access > Sandbox > Test Accounts,然后点击 +
add-sandbox-user.webp
  1. 填写测试用户信息。请务必设置 Country or Region,因为这会影响该地区的产品可用性及购买货币。
  • 如果你使用 Gmail 或 iCloud,可以通过加号子地址复用现有邮箱。
  • 你也可以使用一个根本不存在的随机邮箱地址,但请确保在测试设备上登录时拒绝双因素认证(2FA)。
57c3a7c-apple_new_test_account.webp
  1. 点击 Create

步骤 2:启用开发者模式

如果您的测试设备上已启用开发者模式,或者您没有 Mac 设备,请跳过此步骤。

您需要一台安装了 Xcode 的 Mac 以及测试设备的数据线:

  1. 在 Mac 上打开 Xcode。如果您要通过 TestFlight 测试应用内购买,只需安装 Xcode 即可,无需在其中打开应用。
  2. 使用数据线将测试设备连接到 Mac。
  3. 在测试设备上前往 Settings > Privacy & Security > Developer Mode,并开启 Developer Mode

第三步:从 TestFlight 下载应用

此步骤仅适用于通过 TestFlight 进行测试的情况。如果你是在 Xcode 中构建应用,请跳过此步骤。

有关如何将应用提交至 TestFlight 的详细信息,请参阅 Apple 文档

下载 TestFlight 应用前,请先在测试设备上确认已登录正式的 Apple 账号,然后从 TestFlight 下载你要测试的应用。

下载完成后请勿打开应用。直接继续后续步骤。 如果不小心打开了,请从测试设备上删除该应用并重新下载。否则,你的购买记录可能不干净,导致测试应用内购时出现错误。

第四步:切换至沙盒测试账号

没有 Mac?这里有个替代方法

如果你不使用 macOS,就无法通过 Xcode 切换到沙盒账号。不过,你可以直接在测试设备上操作:

  1. 在测试设备上进入 Settings > Your Apple Account > Media & Purchases
  2. 在弹出菜单中选择 Sign Out
  3. 打开从 TestFlight 下载的应用,尝试购买一个产品。
  4. 当系统提示登录时,输入你的沙盒账号凭据,即可切换到沙盒环境。

要切换到沙盒账号:

  1. 在测试设备上前往 Settings > Your Apple Account > Media & Purchases
  2. 从弹出菜单中选择 Sign Out
  3. 前往 Settings > Developer。如果 Developer 选项不可用,请确保您已在第 2 步中启用了开发者模式
devmode.png
  1. 向下滚动到 Sandbox Apple Account 部分,然后点击 Sign In
sandbox-acc.png
  1. 使用您的沙盒 Apple 账户凭据登录。

第五步:清除购买记录

如果你刚创建了新的沙盒测试账号并已切换到该账号,可以跳过此步骤,因为它仅适用于使用同一沙盒测试账号进行重复测试的情况。

  1. 在测试设备上前往 Settings > Developer > Sandbox Apple Account
  2. 从弹出菜单中选择 Manage
  3. 进入 Account Settings,点击 Clear Purchase History

每次使用同一个沙盒测试账号重复测试时,都必须执行此步骤。此时你还需要退出沙盒测试账号,然后重新登录,以清除测试设备上的购买历史缓存。

步骤 6:在 Xcode 中构建并运行

此步骤仅适用于通过 Xcode 构建进行测试的情况。如果您使用 TestFlight,请跳过此步骤。

  1. 将测试设备连接到 Mac。
  2. 打开 Xcode。
  3. 点击工具栏中的 Run,或选择 Product > Run 在连接的设备上构建并运行应用。

如果构建成功,Xcode 将在您的设备上启动应用,并在调试区域打开一个调试会话。

您的应用现在已准备好在设备上进行测试。

步骤 7:进行测试购买

打开应用,通过付费墙进行测试购买。

完成后,请查阅验证测试购买文章以检查您的结果。

步骤 8:继续测试

现在,您的测试环境已全部就绪。如果您想再次进行测试,请清除沙盒账号的购买历史记录

测试问题

以下是测试应用时可能遇到的常见问题。

TestFlight 问题

如果你在使用 TestFlight 时未切换到沙盒测试账号,将无法清除购买记录,从而导致各种问题和不准确的测试结果。

如果你不小心忘记切换到沙盒测试账号就打开了应用,哪怕只打开过一次,TestFlight 也会将你的购买记录归到正式 Apple 账号下,进而引发意外问题。

按照以下步骤修复:

  1. 从测试设备上删除该应用。
  2. 按照沙盒测试的步骤重新操作。

重要提示:不仅要重新安装应用,还需要切换到沙盒测试账号、清除购买记录,并使用沙盒测试账号启动应用。

共享访问等级问题

如果你使用同一个沙盒测试账号反复测试,可能会遇到测试用户共享访问等级方面的意外行为。

要检查用户是否拥有继承的访问等级,请在 Adapty 看板中前往 Profiles & Segments 并打开该用户的用户画像。

profile-access-level-origin.webp

如果用户拥有继承的访问等级,请按照以下步骤进行准确的测试:

  1. 删除父级用户画像。
  2. 从测试设备上移除应用。
  3. 从 TestFlight 下载应用
  4. 切换到沙盒测试账户
  5. 清除购买历史记录
  6. 打开应用并完成测试购买

在 TestFlight 中更新应用

如果 TestFlight 应用已更新:

  1. 从测试设备中删除应用。
  2. 从 TestFlight 下载应用
  3. 切换到沙盒测试账号
  4. 清除购买历史记录
  5. 打开应用并进行测试购买

购买过程中的身份验证

如果您已下载 TestFlight 应用但未从设备设置中登录沙盒账号,则在购买过程中登录将不起作用。要使购买成功,您必须在尝试购买之前从设备设置中登录沙盒账号。

测试订阅

使用沙盒测试账号测试应用时,你可以为每位测试人员单独设置沙盒中的订阅续费频率。详情请参阅苹果官方文档中关于编辑订阅续费频率的说明。

默认情况下,订阅最多续费 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 分钟才能出现在事件动态中。

测试优惠活动

测试优惠活动时,需要清除所有用户收据,才能确保资格判断正常运作。

最可靠的测试方式是使用全新的沙盒测试账号。使用同一个沙盒测试账号重复测试可能会导致意外行为。

如果使用同一个沙盒测试账号重复测试,请务必清除购买历史记录,以避免资格判断相关问题。