关于App store审核使用socket因为Ipv6问题被拒的一点点建议

字数 827阅读 1302

第一次写文章,不喜勿喷,谢谢。

        最近,除了xocde8和iOS10,还有一个问题让我们非常头大,也是自六月一号以来的老大难问题,那就是因为ipv6问题被拒绝上架,有的同学很幸运,真的是幸运,没有遇到,遇到这个问题的人可是愁白了头,又花钱有拍视频的,最后还是不行,我就说说我自己的项目吧!

最开始的时候被拒一脸萌比,这是什么狗屁原因?ipv6? 没听说过!开始疯狂的找资料,了解到自己可以搭建一个NAT64网络来测试,嘿,这下好了,赶紧弄个测试了一下。没问题啊!!再次上传,然后你懂的,又被拒了,原来自己搭建的环境,手机和 Mac 之间是 IPv6 没错,但 Mac 和你的服务器之间还是 IPv4 连接。如果测试通过,只能说明客户端应用在 IPv6 网络下,是没有问题的,但是无法验证你的服务器能够对 IPv6 网络做出正确的响应。

而苹果审核的时候,是要去 DNS 服务器询问你的服务器的 IPv6 地址,然后进行访问。

所以,自己搭建的NAT64网络下测试没有问题,并不能保证呢一定能通过审核,怎么办呢?

闲话不多说了,说一下我的socket是怎么通过的。

socket网络框架怎么通过审核,如图:

Socket

首先,确保你用的是域名,而非IP地址。

然后,第三方网络框架版本是不是支持IPv6,这个网上有很多资料,不再赘述。

然后,确保服务器能够响应ipv6的DNS响应,验证方法:

               终端输入    dig +nocmd +nostats 你的域名 AAAA

返回的 status 是 NOERROR, 那基本就没什么问题,如果返回的是其他响应,那就让你们服务器的人去做DNS配置,知道响应NOERROR。

什么?都没问题????那么重点来了

我们添加一个域名解析:

域名解析方法

你会发现socket框架里没有这个方法,好吧,那我们自己写:

在Asyncsocket.h中添加:

Asyocsocket.h中添加

在Asyncsocket.m中的实现方法如图:


1


2


3


4


5
6


7

是不是很长,贴出来,主要是我也不明白他的原理,希望有大神给我解释一下,我只是发现这样会通过审核,希望对还在上线路上的同学们一点建议。

补充一点:还有人提出为什么http不能访问网络,因为iOS9开始,苹果默认不允许使用http访问,要用https,解决办法是关闭ATS,但是此方法将在2017.1.1号不允许使用了,具体解决办法,以后再更新吧。

我就不贴下载网址了,想要源码的直接私聊我吧。。。。。。。

第一次写文章,不喜勿喷,谢谢

推荐阅读更多精彩内容