沙盒测试

在 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

步骤 3:从 TestFlight 下载应用

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

有关将应用提交到 TestFlight 的详细信息,请参阅 Apple 官方文档

在下载 TestFlight 应用之前,请确保您的测试设备已使用正式 Apple 账号登录,然后从 TestFlight 下载您要测试的应用。

下载后请勿立即打开应用,直接进行后续步骤。 如果不小心已打开,请从测试设备中删除应用并重新下载。否则,您的购买历史记录可能不为空,测试应用内购买时将导致错误。

步骤 4:切换到沙盒测试账号

没有 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 账号凭据登录。

步骤 5:清除购买历史记录

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

  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 应用但未从设备设置中登录沙盒账号,则在购买过程中登录将不起作用。要使购买成功,您必须在尝试购买之前从设备设置中登录沙盒账号。

测试订阅

使用沙盒测试账号测试应用时,您可以为沙盒中的每位测试人员设置订阅续订频率。更多关于编辑订阅续订频率的信息,请参阅 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 分钟才能出现在事件动态中。

测试优惠

测试优惠需要删除所有用户收据,才能使资格判断正常工作。

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

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