We discovered one or more bugs in your app when reviewed on iPad running iOS 10.0and iPhone running iOS 10.0 on both Wi-Fi connect to ipv6.
第一步:测试客户端是否能够在ipv6下运行
首先得配置IPv6网络环境,至于如何配置,自行百度"如何搭建IPv6的测试环境"。
然而配置成功后,用手机连接的WiFi DNS也是正确的,运行程序测试怎么不成功呢,找了好多资料,猜测是DNS解析除了问题。
那就换另一种方法配置IPv6:拔掉网线,用mac连接WiFi(没有WiFi可以用手机流量分享热点),然后在共享中用前一种方法配置IPv6(不知道具体是共享到电脑那个端口,索性全点上),记得选中"创建NAT64 网络"。这时直接通过模拟器测试succeed!
测试成功了。你以为就没问题了?这里提交依然可能被拒,手机和 Mac 之间是 IPv6 没错,但 Mac 和你的服务器之间还是 IPv4 连接。
第二步:测试服务器是否能够支持ipv6
如果这项测试通过,可以说明:你的客户端应用在 IPv6 网络下,是(基本)没有问题的,但是无法验证你的服务器能够对 IPv6 网络做出正确的响应。然而,苹果审核的时候,却是要去 DNS 服务器询问你的服务器的 IPv6 地址,然后进行访问。如果查询不到 IPv6 地址,可能会进而询问 IPv4 地址,然后进行转换使用。苹果明确表示服务器不需要支持 IPv6,但是有一点苹果没有指出来,那就是,虽然你的服务器不用支持 IPv6,但是必须正确响应 IPv6 的 DNS 查询。
如何验证呢??使用以下命令即可:
$ dig +nocmd +nostats example.com AAAA
如果返回的 status 为 NOERROR, 那基本就没什么问题,但是一定要在多个网络环境下测试都通过才行。如果返回的是其他的响应,尤其是 SERVFAIL 的情况,那就基本杯具了。由于你已经验证了客户端没有问题,现在要做的,就是催着你的运维、后台啥的,赶紧去改 DNS 配置,直到稳定返回 NOERROR 为止。
第三步:苹果的服务器是否能够访问我们的ip地址
现在很多人碰到的情况就是客户端可以完成ipv6的访问,服务器本身也可以支持ipv6.但是就审核不通过。发生这样的情况很可能是苹果那边的服务器无法访问你的ip地址。打个比方就好像歪果仁要来中国旅游需要办签证,而中国就不给办理。 解决办法就是,通过将通过一个代理隧道将你的ipv4连接到ipv6Internet地址,当然你得先拥有支持IPv6的主机或者连接ipv4的路由。根据后台的说法,先去我们用的是教育网,后面切换到了一个香港的公司。因为不是很了解,我就不班门弄斧了。不过通过这样的操作我们确实通过了ipv6的审核。
最后,留下一个地址,祝您好运!如果能帮助您别忘点赞~https://www.tunnelbroker.net/