【发布时间】:2018-11-15 02:07:45
【问题描述】:
我的应用程序发生了一件非常奇怪的事情。
具体来说,当我检测到应用程序的捆绑包中不包含收据文件时,我发出收据请求以便从 Apple 下载收据。
当然,调用收据刷新 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 登录屏幕,要求BOTH Apple ID 用户和密码(这让我认为他们确实已从“设置”屏幕,否则他们已经在对话框中预先填充了 Apple ID 用户)并显示了这篇文章中提到的错误。
我现在不知道如何继续,因为我根本无法重现此问题。它适用于我设备上的任何沙盒用户——它不适用于真正的 Apple ID 用户。
Apple Review 给我发了一张截图,显示了这篇文章中提到的错误,我只能在真正的沙盒环境中使用真正的 Apple ID 用户时重现该错误。
我认为唯一的区别可能是我的设备运行的是 iOS 10.x,而他们的设备可能运行的是 iOS 12.x,但我认为这不是问题。
有什么想法吗?
提前致谢!
P.S.,他们没有使用我创建的 Apple ID 沙盒用户——他们使用的是自己的。我曾建议将我的沙盒用户发送给他们进行测试,但他们表示不能接受,因为这会侵犯隐私。
更新:我已经确认 iOS 12.1 上发生了同样的事情,所以这不是由于操作系统的差异。
【问题讨论】:
-
是 iOS 显示错误信息还是你的代码?
-
iOS 显示错误消息。 “didFailWithError”返回帖子和代码 16 中的确切错误。
-
你的应用无法刷新收据怎么办?
-
它显示在“didFailWithError”中收到的错误,并且它有一个“RETRY”按钮。当用户按下“重试”按钮时,应用程序会尝试再次刷新收据。他们已经“重试”了几次,但没有运气——仍然得到同样的错误。另外:在调用收据刷新功能之前,我会检查以确保有有效的互联网连接。
-
用户是否可以选择继续而不刷新收据?你确定是iOS显示错误吗?听起来您正在显示错误对话框。如果收据刷新请求失败,您应该默默地继续前进