需要iPv6兼容性 - 苹果拒绝iOS应用程序

Bra*_*abs 30 itunesconnect ipv6 ios

在此输入图像描述

在6月1日之后,我将我的离子应用程序提交给itunes connect,我收到了来自apple的消息.

应用程序在IPv6网络上进行审核.请确保您的应用支持IPv6网络,因为需要IPv6兼容性 .

有关支持IPv6网络的信息,请参阅支持iPv6 DNS64/NAT64网络.

有关网络概述,请参阅关于网络.

我已经使用AFNetworking进行API调用.

请帮助找出相同的解决方案.

谢谢.

gun*_*ngh 20

如果您使用的是IPv4特定的API或硬编码的IP地址,则需要更新代码,尽管所有NSURLSession和CFNetwork API(包括NSURLConnection)都已支持IPV6

正如Apple所说:

在WWDC 2015上,我们宣布向iOS 9中的仅IPv6网络服务过渡.从2016年6月1日开始,提交到App Store的所有应用程序都必须支持仅IPv6网络.大多数应用程序不需要任何更改,因为NSURLSession和CFNetwork API已经支持IPv6.

如果您的应用使用特定于IPv4的API或硬编码的IP地址,则需要进行一些更改.

虽然.Apple还建议不要长期使用IP地址文字(不必要)

不要使用IP地址文字

确保您没有将点地址表示法中的IPv4地址文字传递给API,例如getaddrinfo和SCNetworkReachabilityCreateWithName.相反,使用高级网络框架和地址无关的API版本,例如getaddrinfo和getnameinfo,并传递它们的主机名或完全限定的域名(FQDN).请参阅getaddrinfo(3)Mac OS X开发人员工具手册页面和getnameinfo(3)Mac OS X开发人员工具手册页码.

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

如果您使用的是AFNetworking Library,请确保将其更新到3.x以上的版本,因为它们似乎已更新了一些内容.- > AFNetworking添加了对可达性的IPv6支持.

有关详细信息,请点击此链接

支持仅IPv6网络

另外,要测试

你可以按照这个详细的教程:

教程如何对测试您的应用程序内换了IPv6的兼容性


Man*_*ngh 12

由IPv6网络引起的Apple应用拒绝解决方案

我对IPv6的互联网可达性检查效果不佳.它总是显示缺少网络.当我使用此代码时,苹果在24小时内批准了我的应用程序.谢谢

更改类AFNetworkReachabilityManagerAFNetworking Library中的代码中的以下行

AF_INET改变AF_INET6;

+ (instancetype)sharedManager {
    static AFNetworkReachabilityManager *_sharedManager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        struct sockaddr_in address;
        bzero(&address, sizeof(address));
        address.sin_len = sizeof(address);
        address.sin_family = AF_INET6;  //Change AF_INET TO AF_INET6
        _sharedManager = [self managerForAddress:&address];
    });

    return _sharedManager;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

$ grep -nr 'AF_INET*' .
./Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m:122:        address.sin_family = AF_INET;

replace

AF_INET; to AF_INET6;
Run Code Online (Sandbox Code Playgroud)


Bra*_*abs 7

实际上我使用AFNetworking Library调用API.

我刚刚用我现有的类替换了Github上的AFNetworkReachabilityManager类.苹果不再有问题了.

我的应用程序现在正常运行