Apple App Store拒绝了我的应用程序,并显示了以下消息:
在iPad上进行审核时,我们在您的应用中发现了一个或多个错误 在连接到IPv6网络的Wi-Fi上运行iOS 11.4.1。
为此,我(为时已晚)发现,自2016年6月以来,Apple要求提交到App Store的每个应用程序都应支持纯IPv6网络,如此处https://developer.apple.com/support/ipv6/所述:
从2016年6月1日开始,所有提交到App Store的应用都必须 支持仅IPv6网络。大多数应用都不需要任何 更改,因为NSURLSession和CFNetwork已经支持IPv6 蜜蜂。但是,如果您的应用程序使用特定于IPv4的API或硬编码 IP地址,您需要进行更改。确保测试IPv6 兼容性,然后再将您的应用提交给App Store进行审核。
重点是我的应用程序没有硬编码的IP地址,对于所有的网络调用,我只是使用默认实现实例化了HttpClient;我已经为其他客户基于同一应用程序提交了其他应用程序,但是这是他们第一次拒绝该应用程序。而且,我没有办法对IPv6进行测试,因为我的ISP不支持它,而且我的两个移动sims(internet.wind和mobile.vodafone.it)的APN在IPv6中也不起作用。 / p>
Apple是否有可能仅偶尔进行一次这项测试,而其他5/10提交的项目我只是很幸运?
答案 0 :(得分:1)
在我发现问题是由于服务器造成的之后,晚上(在美国,晚上,美国下午)非常缓慢,但是阅读文档后发现,这对其他人可能有用: https://docs.microsoft.com/en-us/xamarin/cross-platform/macios/http-stack
2018年4月–由于对安全性要求的提高,包括PCI 合规性,主要云提供商和Web服务器预计将停止 支持TLS版本早于1.2。 Xamarin项目创建于 以前的Visual Studio版本默认使用旧版本的 TLS。
为了确保您的应用继续与这些服务器和 服务,则应使用 NSUrlSession设置如下所示,然后重新构建并重新部署您的 应用程序提供给您的用户。
是的,对于 HttpClient 实施,托管是默认选项,并且几乎可以确定,如果您在iOS项目设置中使用的是旧应用程序,则会发现一。但是Xamarin现在建议使用 NSUrlSession ,因此避免将来出现问题可能会对其进行更改。
但是几乎可以确定,如果您没有任何硬编码的IPv6地址,则无需在代码中进行任何更改: https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html
如果您正在使用高级联网API编写客户端应用程序 例如NSURLSession和CFNetwork框架,您可以通过 名称,您无需更改任何内容即可使用您的应用 IPv6地址。如果您未按名称进行连接,则可能应该 是。