我可以在Xcode环境中进行测试。我可以用TestFlight进行测试,它使用一个真正的Apple在Sandbox环境中进行购买。
但是如何在Sandbox环境中对Sandbox用户进行测试呢?因为我需要能够清除我的沙箱用户购买历史,以便我可以测试第一次购买。
我一直在阅读文档,我觉得每个特定的文档都会跳过我需要的信息。它解释了如何创建一个Sandbox测试用户,我已经这样做了。很多年前,我做了大量的IAP工作,但是事情已经发生了很大的变化,以至于它没有像我所期望的那样起作用。当我看医生的时候,我觉得我找不到丢失的那篇。
当我使用Xcode在模拟器中进行测试时,它在Xcode环境中执行IAP事务。这事儿可以理解。
这一页写着:
使用你的沙箱苹果ID运行你的应用程序,构建并运行你的应用程序的Xcode。
但是,当我在直接从Xcode安装的物理设备上进行测试时,它也会在Xcode环境中执行IAP事务。我以为这会使我处于Sandbox环境中,但事实并非如此。Xcode事务管理器显示了事务。初始的购买视图控制器根本没有引用Sandbox,而“You‘all”警报显示的是Environment: Xcode而不是Environment: Sandbox。

当我将测试构建放到TestFlight中并使用该版本进行测试时,我的IAP事务正在使用我真正的Apple在生产中发生(但实际上没有任何事务收费)。
我假设在TestFlight中进行测试会给我提供Sandbox环境,但是它发生在生产环境中。(购买视图控制器不显示Sandbox,“您都设置好了”警报没有显示Sandbox。)
那么,如何在沙箱中进行测试呢?我试图测试的每一种方式都会将我置于Xcode环境或生产环境中。
我遗漏了什么?
我已经在我的手机上注销了我真正的苹果id,然后用我在AppStore连接中创建的沙箱用户凭据登录。但是当我尝试测试这个应用程序时,通过安装Xcode,它仍然说我在Xcode测试环境中。当我创建事务时,这些事务将显示在Xcode事务管理器中。
如何在沙箱环境中进行测试?
发布于 2022-11-24 00:54:37
IAP处于"Xcode“模式与处于"Sandbox”模式之间的区别在于您是否在目标的方案上设置了StoreKit配置。
在Xcode中,选择Product并转到Scheme,然后是"Edit Scheme.“。选择左侧的Run,然后转到Options选项卡。
对于"StoreKit配置“设置,如果选择特定的配置,您将获得Xcode模式。如果您将此选项设置为None,即使在从Xcode运行应用程序时,您也将获得Sandbox模式。
在从TestFlight运行时,所有这些都不适用。在TestFlight中,您处于完全生产模式。
为了验证这一点,我在app ->沙箱帐户下的Settings应用程序中登录了一个沙箱帐户。然后,我通过Xcode运行我的应用程序,并在我的应用程序中通过了一些IAP。当StoreKit配置设置为None时,IAP屏幕显示"Sandbox“。当StoreKit配置设置为特定的存储包文件时,IAP屏幕显示"Xcode“。
https://stackoverflow.com/questions/74483653
复制相似问题