问题描述
昨天从无处测试我的应用程序时开始出现此错误。
在应用启动时调用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
,我的测试设备上有一个旧的沙盒用户收到相同的错误。以下步骤种类为我解决了此问题:
- 从测试设备中注销沙盒用户
- 创建一个新的沙箱用户
- 使用新的沙箱用户登录。
- 尝试还原应用内购买,而无需先购买。得到有问题的错误。
- 尝试购买应用内购买...购买成功。
- 删除应用。
- 在测试设备上重新构建应用。
- 还原应用内购买。恢复成功。
我知道这可能不是一个确定的解决方案,但我只是想分享这些信息,希望对您有所帮助。该应用程序的最新版本获得App Store批准后,我将更新答案。
,从TestFlight安装内部版本时,这也发生在我身上。我配置了一个沙箱帐户,但该帐户不是该构建所属的团队的一部分。因此,我退出了沙箱帐户,对话框消失了。我使用属于团队的适当沙盒帐户登录,即使这样我也没有看到对话框。
我知道从TestFlight安装该版本时,它会使用设备上配置的实际iTunes商店帐户,但是我猜想它与沙盒帐户有关。为了避免出现此对话框,请在从TestFlight安装内部版本时删除沙盒帐户,或使用属于团队或内部版本帐户的正确沙盒帐户