我看到我的应用程序发生了一件非常奇怪的事情。
具体来说,当我检测到应用程序的捆绑包中不包含收据文件时,我会发出收据请求,以便从苹果下载收据。
当然,调用收据刷新API会显示Apple ID登录屏幕。
为了测试我的应用程序,我在iTunes Connect中创建了"测试"/"沙箱"用户。
在我的设备(带WiFi的iPad(上运行该应用程序时,该应用程序成功调用了刷新收据功能,然后果不其然,Apple ID登录屏幕弹出。我在iTunes Connect中输入了测试/沙箱用户配置的正确凭据,一切正常(即收据下载成功(
但是,如果我尝试使用真实的Apple ID用户,我会得到"didFailWithError",本地化的错误描述是:"无法连接到iTunes Store",错误代码为"16"。
在我看来,这是意料之中的事。
现在,可悲的是,当我向Apple Review提交我的构建时,他们得到了上面提到的确切错误。
他们说他们正在使用一个沙盒用户,因此他们拒绝了该应用程序,因为他们无法继续。
注意:他们也使用了带WiFi的iPad来测试应用程序。
我一直只能在使用真实的Apple ID用户帐户时重现这个问题,并且从未遇到过沙盒用户的问题!
我在某个地方读到,在测试时,还必须确保沙盒用户已从"设置"屏幕中注销。我礼貌地要求Apple Review确保他们在测试时不会登录"设置"。
他们给我发了两张截图:一张是Apple ID登录屏幕,要求输入Apple ID用户和密码(这让我认为他们确实从"设置"屏幕中注销了,否则他们已经在对话框中预先填充了Apple ID用户(,另一张显示了本文中提到的错误。
我现在不知道该如何处理,因为我根本无法重现这个问题。它可以完美地与我设备上的任何沙盒用户配合使用——只是无法与真正的Apple ID用户配合使用。
《苹果评论》给我发了一张截图,显示了这篇文章中提到的错误,我只能在真正的沙盒环境中使用真实的Apple ID用户时才能重现这个错误。
我认为唯一的区别可能是,我的设备正在运行iOS 10.x,而他们的设备可能正在运行iOS 12.x,但我认为这不应该是一个问题。
有什么想法吗?
提前感谢!
第页。在美国,他们没有使用我创建的Apple ID沙盒用户——他们使用自己的。我曾建议将我的沙盒用户发送给他们进行测试,但他们表示不能接受,因为这会侵犯隐私。
更新:我已经确认iOS 12.1上也发生了同样的事情,所以这不是因为操作系统的差异。
至少在我的情况下,刷新回执API本身似乎有问题。
我已经确认,启动购买请求会导致应用程序从苹果下载带有所提供用户凭据的收据(在我们的情况下是沙盒用户(
审查小组已经确认,购买请求对他们的沙盒用户有效,但是,刷新收据对完全相同的用户无效(这会导致代码16,"无法连接到iTunes Store"(!
我还确认,"恢复"请求会导致收据被下载,并且它与提供的沙盒用户一起工作。
总之,"购买"one_answers"请求"操作都会导致应用程序从苹果下载收据,并且它们对于审查团队提供的沙盒用户来说是正确的。但是,对于完全相同的用户,收据刷新请求失败!
我仍然可以要求刷新收据,因为它应该可以正确地用于实际的应用商店下载,但它显然不适用于应用程序审查。