没有可用于应用内购买的信息稍后再试 21105

问题描述

昨天从无处测试我的应用程序时开始出现此错误

Error: There is no information available for In-App Purchases. Try again later. 21105. Environment: Sandbox

在应用启动时调用restoreCompletedTransactions()就是这种情况。

错误是什么意思,我有什么办法可以避免此错误

解决方法

造成这种情况的是苹果的内部服务器。根据我几个小时前的研究,这种情况发生在某些测试人员上(显然不是全部)。而且它仅在测试帐户中发生,因此生产应用程序是安全的。

,

我已经使用Apple Developer Center询​​问了一个Apple,他们这样回答我:

Hello Bartlomiej Semanczyk,

我已经查看了以下问题描述。 这似乎是一个错误报告问题,需要由App Store服务器质量检查工程师进行调查。堆栈溢出页面中显示的错误字符串对我来说是新的。 但是,服务器质量检查团队需要调查此问题,因为服务器可能正在发出此错误字符串。请按照以下说明安装StoreKit配置文件并捕获控制台日志,然后提交错误报告。我将审核错误报告,并确保将其转发给服务器质量检查小组进行调查。顺便说一句,我只是放了一个旧的StoreKit示例广告,但没有看到这个问题。我想知道问题是否仅与新的应用内购买标识符有关。

在这里,他们附上了很多说明,以安装StoreKit和捕获设备控制台日志。

,

我的一个TestFlight用户也遇到了此错误,而其他用户则并不奇怪。它们大多数在ios 13.6.1上。 Apple开发人员论坛线程中的其他人(我在这里找到了您的链接)也在生产中遇到这种情况。似乎这个问题大约在48小时前就开始了,而Apple没有给出具体答案。无论如何,要回答您的问题:

设置服务器端与Apple通信以检查收据时,您需要先按下生产api:

https://buy.itunes.apple.com/verifyReceipt

您将从Apple获得json响应,其中包括“状态”键和相应的数值。如果“状态”返回“ 21007”,则表示收据是针对沙盒而不是生产。然后,您改为点击测试api:

https://sandbox.itunes.apple.com/verifyReceipt

,

我的测试设备上有一个旧的沙盒用户收到相同的错误。以下步骤种类为我解决了此问题:

  1. 从测试设备中注销沙盒用户
  2. 创建一个新的沙箱用户
  3. 使用新的沙箱用户登录。
  4. 尝试还原应用内购买,而无需先购买。得到有问题的错误。
  5. 尝试购买应用内购买...购买成功。
  6. 删除应用。
  7. 在测试设备上重新构建应用。
  8. 还原应用内购买。恢复成功。

我知道这可能不是一个确定的解决方案,但我只是想分享这些信息,希望对您有所帮助。该应用程序的最新版本获得App Store批准后,我将更新答案。

,

从TestFlight安装内部版本时,这也发生在我身上。我配置了一个沙箱帐户,但该帐户不是该构建所属的团队的一部分。因此,我退出了沙箱帐户,对话框消失了。我使用属于团队的适当沙盒帐户登录,即使这样我也没有看到对话框。

我知道从TestFlight安装该版本时,它会使用设备上配置的实际iTunes商店帐户,但是我猜想它与沙盒帐户有关。为了避免出现此对话框,请在从TestFlight安装内部版本时删除沙盒帐户,或使用属于团队或内部版本帐户的正确沙盒帐户