首页 课程中心 问答&分享 读书 公众号框架 HUI H.JS 开放源 登录 & 注册
 IOS app 审核由于 IPv6 网络问题被拒的分析
[ 淡淡的风 ] 发布于 : 2016-12-19  浏览 :  次

先分析一下情况,很多开发者抱怨自己按照苹果给出的方法,在自己电脑上搭了 IPv6 的环境测试了,没有问题,为啥一提交审核就不行了呢?这里就要看一下本机搭的这个 IPv6 环境到底是怎么回事,它到底能验证什么。


苹果提供的方法是帮我们创建一个 NAT64 的网络,这里先要搞清楚啥是 NAT64. 其实简单来说,就是这样的:

Mac 创建的 IPv6 网络

所以,手机和 Mac 之间是 IPv6 没错,但 Mac 和你的服务器之间还是 IPv4 连接。如果这项测试通过,可以说明:你的客户端应用在 IPv6 网络下,是(基本)没有问题的,但是无法验证你的服务器能够对 IPv6 网络做出正确的响应。


然而,苹果审核的时候,却是要去 DNS 服务器询问你的服务器的 IPv6 地址,然后进行访问。如果查询不到 IPv6 地址,可能会进而询问 IPv4 地址,然后进行转换使用。苹果明确表示服务器不需要支持 IPv6,但是有一点苹果没有指出来,那就是,虽然你的服务器不用支持 IPv6,但是必须正确响应 IPv6 的 DNS 查询。


如何验证呢??使用以下命令即可:

$ dig +nocmd +nostats example.com AAAA

如果返回的 status 为 NOERROR, 那基本就没什么问题,但是一定要在多个网络环境下测试都通过才行。如果返回的是其他的响应,尤其是 SERVFAIL 的情况,那就基本杯具了。由于你已经验证了客户端没有问题,现在要做的,就是催着你的运维、后台啥的,赶紧去改 DNS 配置,直到稳定返回 NOERROR 为止。


教程更新
More...