当我们:时,您的应用程序在运行iOS 11.1并连接到IPv6网络的iPad和iPhone上崩溃



当我测试时,我的应用程序在IPad和Iphone上运行良好。我正在使用AFNetworking 2.0为API的呼叫和苹果应用程序审查是拒绝我的应用程序再次&再次由于IPv6网络,我正在使用硬编码的Ip地址,如http://192.230.66.71/XXXXXXXX/XX/我对此感到沮丧,请任何人帮我现在该怎么办。

根据苹果公司的规定,您不应该使用硬编码IP地址。

不要使用IP地址文字请确保您没有将点符号形式的IPv4地址文本传递给getaddrinfo和SCNetworkReachabilityCreateWithName等API。相反,使用高级网络框架和地址不可知的API版本,如getaddrinfo和getnameinfo,并将主机名或完全限定域名(FQDN)传递给它们。请参阅getaddrinfo(3)Mac OS X开发人员工具手册页和getnameinfo(3。

注意:在iOS 9和OS X 10.11及更高版本中,NSURLSession和CFNetwork会自动从运行DNS64/NAT64网络的设备上本地的IPv4文字合成IPv6地址。但是,您仍然应该努力消除代码中的IP地址文字。

在我看来,有两件事你应该注意:

1。不建议使用硬编码IP地址,但根据上面的注释和我所做的搜索,一些开发人员在其应用程序中使用IPv4地址文字通过了审查
因此,请先不要在应用程序中使用IPv4地址文字,然后确保注意到我下面提到的第二件事。

2.您的应用程序可能会因其他网络相关问题而崩溃。就像我之前评论的一样。我会把它贴在这里,让你更清楚。

确保安全地处理接收到的数据。我的应用程序也因同样的原因被拒绝,但我发现真正的问题是,在某些情况下,接收到的数据可能是服务器错误,导致应用程序崩溃。我通过了应用程序审查,修复了那个错误。

例如,该应用程序在您的网络下运行良好,但它可能在其他地方失败,比如连接速度太慢并导致超时。在这种情况下,你会得到一些服务器错误数据或空数据,然后如果你在代码中强行打开数据,应用程序就会崩溃。就我而言,苹果公司以IPv6问题拒绝了我的应用程序,这不是真正的问题。

最新更新