您的位置:首页 > 移动开发 > IOS开发

苹果审核因IPv6被拒的探索与解决方法

2016-12-23 16:59 309 查看
app因必须支持IPv6导致上线被拒了好几次,每次被拒都各种查找原因,重新提交,直到最终通过审核。这是我对app最终通过审核的总结。


首先,app要支持IPv6就需要搭建IPv6环境,真机测试是否支持。

常用的测试方式有两种:第一种,利用有线网络搭建IPv6环境;第二种,利用一部iPhone手机的热点共享进行IPv6环境的搭建。这两种方式都是利用MAC设备发射WIFI信号,然后测试机连接此WIFI进行测试。


第一种:利用有线网络搭建IPv6环境

原材料:网线、转换接口、MAC设备、安装有测试项目的iPhone手机

第一步,将MAC设备上以往连接的WiFi网络清理;

第二步,利用网线和转换接口,将MAC设备连接到有线网络;

第三步,打开系统偏好设置,按住option键点击共享按钮,这样才会出现创建NAT64网络选项,记得勾选此选项;共享以下来源的连接选择当前连接的有线网络;用以下端口共享给电脑选择Wi-Fi;



第四步,点击右下角的Wi-Fi选项,进入界面,进行频段以及密码的设置,密码可以不进行设置;

第五步,返回共享界面,点击左侧互联网共享按钮;会弹出下面这个提示框,记得点击启动;

此时,MAC设备右上角的无线网络图标将会变成灰色,且图标中间是一个向上的箭头。

第六步,将测试机连接创建的WiFi网络,打开测试机的无线局域网,点击此WiFi对应的右侧感叹号按钮,查看DNS是否由200开头,以冒号“:”作为间隔,如果是则证明连接的网络为IPv6环境网络;





第七步,愉快的测试App能否正常运行。


第二种:利用一部iPhone手机搭建IPv6环境

原材料:USB数据线、一部可以3G/4G上网的iPhone手机(手机1)、MAC设备、安装有测试项目的iPhone手机(手机2)

第一步,将MAC设备上以往连接的WiFi网络清理;

第二步,将手机1与MAC设备通过USB数据线进行连接;打开手机1的网络,用蜂窝移动网络进行上网,并关闭无线网络和蓝牙;打开个人热点,选择“仅USB”;

第三步,打开系统偏好设置,按住option键点击共享按钮,这样才会出现创建NAT64网络选项,记得勾选此选项;共享以下来源的连接选择“iPhoneUSB”;用以下端口共享给电脑选择Wi-Fi;



剩余步骤和第一种方法的步骤相同。

经过个人测试,发现第一种方式没有达到预期的效果,建议使用第二种方式进行。

参考文章:http://blog.csdn.net/FlyingKuiKui/article/details/52403608


其次,app连上搭建好的共享wifi测试,每个界面都点一下!

app连上搭建好的共享wifi测试你的app,会发现某些 模块无法连接网络, 更换相应的模块即可,让测试人员把所有的模块功能都点一下,最好在搭建好的ipv6下使用iOS9.3.0以上的系统测试,苹果审核使用iOS9.3.0以上的系统审核,这样就会某些模块网络出现无法联网的异常或者崩溃,你按照下面的几个步骤进行适配ipv6

1)更换第三方SDK到最新版本

1、微信支付

2、支付宝支付

3、 友盟需要更换

4、AFNetworking换3.0以上的版本

我没有使用环信,所有使用环信的朋友也要更换

需要更换的第三方SDK参考http://www.jianshu.com/p/afc0b19fd5d3

2)网络请求函数(http请求)

使用最新的AFN即可解决问题

3) iOS10 下面 ipv6被拒绝怎么办?

iOS10发布之后,苹果审核人员使用iOS10
的系统进行ipv6测试,需要下载最新的xcode8 (正式版,非beta版) ,同时手机升级到最新的iOS10 系统,app在iOS10
的ipv6 下所有功能和界面进行测试,看看app 的功能是否完好。


再次,在配置IPv6网络下进行IPv6测试,应用跑的很溜,没有出现问题,但是审核还是被拒绝了。

这时候就需要确认服务器是否支持ipv6,可以使用Google的dig服务来查看域名解析是否有IPv6地址。dig服务需要开启翻墙。





我们的服务器使用的是阿里云,是支持IPv6的。服务器是否支持IPv6需要跟后台技术人员沟通。如果服务器不支持IPv6请参考下面的文章。

参考文章:https://github.com/wg689/Solve-App-Store-Review-Problem/blob/master/ipv6.md#如何适配ipv6


最后,dig服务下没有IPv6地址,需要加上4A记录,添加IPv6地址。

利用DNS64服务解析出域名对应的IPv6地址。步骤如下:(使用Windows系统电脑解析,我使用mac没解析出来)

Windows: 

Win+R打开运行,输入cmd,打开命令提示符,输入以下命令

Nslookup www.6box.cn dns64.6box.cn

命令中www.6box.cn改成你的网站名称,如果APP里调用了多个子域名,都需要进行转换,如a.6box.cn ,b.6box.cn

将解析出来的IPv6地址记录添加到DNS域名托管商管理系统里,此操作通常在万网等域名网站里操作,不是在网站服务器上操作,建议直接联系网站技术负责人进行解析。此IPv6转换服务是免费给小伙伴们使用的,小伙伴们可以放心添加。

C:/>nslookup www.6box.cn dns64.6box.cn

服务器:  UnKnown

Address:  222.28.155.25

非权威应答:

名称:    www.6box.cn

Addresses:  2001:da8:20d:400::76ba:3ffd

118.186.63.253

登录阿里云账号,找到DNS解析之类的,添加一条DNS解析,主机记录写www(如果域名是api开头或别的就写api或别的),记录类型选择AAAA记录,记录值填写解析出来的IPv6地址,保存即可。(这一步一般由服务端人员填写)

参考文章:http://www.cnblogs.com/isItOk/p/5645316.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS ipv6审核被拒