兼容IPv6-only

作者: liuwin7 | 来源:发表于2016-05-14 15:38 被阅读476次

    需要排查的内容

    1. 不使用 IPv4 地址,如,233.5.5.5等
      2. 使用 NSURLSession(兼容iOS 7+),不使用 NSURLConnection
    2. 可以使用NSURLConnection,但是,建议修改成NSURLSession。
    3. 针对于其他第三方的SDK,也要去核实排查。
      • 微信sdk已经更新,尽快升级
    4. 检测兼容性的方法,使用Mac电脑共享一个WiFi热点,使用 NAT64,测试手机连接该热点,测试应用程序,如果某些接口或功能(第三方SDK)出现异常,通常是超时或返回网络错误,表明该 App 不兼容IPv6-only网络,需要修改。

    特别地

    1. 如果使用AFNetworking,尽快升级最新的AFNetworking,并使用 URLSession

    参考

    1. Supporting IPv6 DNS64/NAT64 Networks

    相关文章

      网友评论

      • 承宇:dns虽然变了,但是IP地址还是没有变,这不是等于还是用的ipv4的网络环境么?
        承宇:@liuwin7 http://www.cnblogs.com/fengmin/p/5526487.html这个博客里面的情况,但是这个还是ipv4的地址啊
        承宇:@liuwin7 就是在手机上查看IP地址 显示的还是169.252.216.247而DNS变为2001:2:0:aab1::1;这种情况。
        liuwin7:@承宇 什么意思,没懂你在问什么。
      • 爱上火烧的小毛驴:共享wifi测试了 可是还是被拒绝了 他们请求超时 说要支持ipv6 请问大神知不知道如何解决 跪谢
        liuwin7:@John_Jack 你们应用适配到哪个版本
        爱上火烧的小毛驴:@liuwin7 用ios8也可以
        liuwin7:@John_Jack 建议测试的时候,在不同版本的操作系统上测试,特别是你应用最低适配的版本,一定要测试一下,不要只拿最新的9的系统测试
      • 97030f7d00c7:我们游戏被苹果拒绝了 反馈回来的log是卡在游戏开始阶段的http请求阶段 我使用的是NSURLSession 在本地搭建的ipv6-only环境中测试通过的 真是奇怪
        liuwin7:@AllenShen 你这个也不好说是因为兼容IPv6导致的,也有可能是程序的问题,你可以再排查一下,如果有问题,就反馈给苹果审核人员,提请申诉。
        97030f7d00c7:@liuwin7 使用的域名
        liuwin7:你是写死IPv4地址,还是用的域名
      • jsoonli:NSURLConnection不行吗:pensive:
        liuwin7:但是经过测试,发现,使用NSURLConnection,直接使用IPv4地址,也是可以兼容的。不清楚NSURLConnection和CFNetwork之间的关系,或者是说,苹果在升级NSURLSession的时候,也增加了对NSURLConnection的支持,毕竟还在维护,没有弃用。
        liuwin7:@jsoonli 可以,之前写的测试有点问题,所以得出了错误的结论,不好意思。但是,苹果的官方文档中有指出NSURLSession的一个比较好的特性,在iOS 9上,但是通过测试发现,NSURLConnection也是可以直接使用IPv4字面量的。“In iOS 9 and OS X 10.11 and later, NSURLSession and CFNetwork automatically synthesize IPv6 addresses from IPv4 literals locally on devices operating on DNS64/NAT64 networks.”

      本文标题:兼容IPv6-only

      本文链接:https://www.haomeiwen.com/subject/wtomrttx.html