Xamarin iOS应用程序被App Store拒绝,因为它不能在仅IPv6的环境中使用

时间:2018-08-11 16:22:13

标签: xamarin xamarin.ios app-store ipv6

Apple App Store拒绝了我的应用程序,并显示了以下消息:

  

在iPad上进行审核时,我们在您的应用中发现了一个或多个错误   在连接到IPv6网络的Wi-Fi上运行iOS 11.4.1。

enter image description here

为此,我(为时已晚)发现,自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提交的项目我只是很幸运?

1 个答案:

答案 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地址。如果您未按名称进行连接,则可能应该   是。