美文网首页iOS开发实用技巧IOS理论知识app开发
iOS 适配iPV6的修改(AF及其他第三方库)

iOS 适配iPV6的修改(AF及其他第三方库)

作者: NBeanN | 来源:发表于2016-05-14 15:31 被阅读18831次

    由于6月1日起苹果将开始强制app适配iPV6,就对现有工程做了一个排查,发现一点更新一次吧,现将发现的AF中的修改先列出来,有其他的再后续补上。

    只需要修改2个文件

    修改的文件

    .h文件修改的地方有一处

    修改前:

    修改前

    修改后:

    修改后

    修改代码:

    + (instancetype)managerForAddress:(conststructsockaddr_in*)address;【前】

    + (instancetype)managerForAddress:(conststructsockaddr_in6*)address;【后】

    .m文件中修改两处

    第一处修改前:

    .m中修改

    第一处修改后:

    .m中修改

    修改代码:

    + (instancetype)managerForAddress:(conststructsockaddr_in*)address 【前】

    + (instancetype)managerForAddress:(conststructsockaddr_in6*)address 【后】

    第二处修改前:

    .m中修改

    第二处修改后:

    .m中修改

    修改代码:

    + (instancetype)sharedManager {

    staticAFNetworkReachabilityManager*_sharedManager =nil;

    staticdispatch_once_tonceToken;

    dispatch_once(&onceToken, ^{

    structsockaddr_inaddress;

    bzero(&address,sizeof(address));

    address.sin_len=sizeof(address);

    address.sin_family=AF_INET;

    _sharedManager = [selfmanagerForAddress:&address];

    });

    return_sharedManager;

    }【前】

    + (instancetype)sharedManager {

    staticAFNetworkReachabilityManager*_sharedManager =nil;

    staticdispatch_once_tonceToken;

    dispatch_once(&onceToken, ^{

    structsockaddr_in6address;

    bzero(&address,sizeof(address));

    address.sin6_len=sizeof(address);

    address.sin6_family=AF_INET6;

    _sharedManager = [selfmanagerForAddress:&address];

    });

    return_sharedManager;

    }【后】


    如果想了解iPV6相关原理和其他修改,可以参考下面文章。

    http://www.jianshu.com/p/54b989098537

    注:微信登录已经更新了支持iPV6的sdk,有原生微信登录的小伙伴需要注意一下哈。

    菜鸟走向大牛,大家共同前进,如果觉得不错,请给个start,给个赞吧。

    每天做些贡献,交流学习,有问题随时欢迎联系,邮箱:383708669@qq.com

    相关文章

      网友评论

      • macfai:我刚看了一下最新的AFN3.0已经修改了这两个方法,楼主可以看看
        菜鸟上路123:@macfai 楼主 应该怎么办
        macfai:@f32471c76034 不好意思,今天有点忙。刚下班,一会儿给你发个截图
        菜鸟上路123:你好,AFN3.0修改了什么,我现在app因为IPv6的问题被拒了 请问能指点一下吗
      • macfai:你好,楼主,如果用的afn3.0还用修改这些吗
      • 禾乃立川:请问楼主,我2.0的AFN不更新支持iPV6吗,更新后感觉好多网络请求
        NBeanN:@禾乃立川 不好意思,最近项目紧张,回复比较慢,不更新是通过不了审核的,所以没办法只能更新
      • liye:谢谢楼主这么详细,楼主我用的是MKNetworkEngine,请问该怎么整
        NBeanN:@liye 实在抱歉,这个请求框架我也没用过,AF改的也是它封装那一层的一些请求参数的调整,具体的可能你需要看看MK的文档,按道理来说MK也算比较流行的框架之一了,你更新最新版本应该是没有问题的。没有帮到你,不好意思哈~
      • 小酒窝_David:问个问题,我们是用webview去加载一个url,这个ulr是一个ip地址,ipv4的,我去加载这个url的时候,能加载成功吗,现在的问题是加载不成功,webview直接不去加载,要做什么样的修改,才能让他去加载这样的url呢
        菜鸟上路123:你好,楼主 我也遇到IPv6 被拒的问题了 能指点一下吗
        小酒窝_David:@NBeanN 解决了,同事告诉我是个外网地址,一直访问不了,最后让那个人查了一下,是个内网地址,谢谢你的回复
        NBeanN:@David_YangSong 你的问题解决了吗?webview加载不会有什么限制,你看看是不是iOS7没有配置infoPlist的问题或者是url链接出了问题,苹果对加载的链接没有说明。
      • G_Jayson:你好,我也有同样的疑问,更新了AFN之后,看到AFNetworkReachabilityManager里面对版本做了判断,但还是出现了 “AF_INET”,请问这样还需要修改吗?能通过审核吗?
        1844af8bcdb4:@NBeanN 你好,我已经更新最新3.1版本,为什么还是屡次被拒,求大神指点!跪谢。。。
        G_Jayson:@NBeanN 嗯,我已经更新最新版本了,非常感谢
        NBeanN:@gjx1212 不好意思,回复不够及时,更新3.0是绝对能够通过审核的,我们的app已经更新了3.0通过两个版本了,这篇文章是当时为了应付苹果新政策的一些修改建议,有条件的最好是更新新版AF
      • LoveY34:直接更新AFNetworking不就好了嘛?
        G_Jayson:@Lylhf 你好,我也有同样的疑问,更新了AFN之后,看到AFNetworkReachabilityManager里面对版本做了判断,但还是出现了 “AF_INET”,请问这样还需要修改吗?能通过审核吗?
        NBeanN:@Lylhf 嗯,这是最直接的方法
      • HustBroventure:我只想问问,作者你有没有试过,按照你的修改,在iOS8上就不行了啊。我按照你的修改,结果上线了后iOS8上出问题啦。最新版的AFN是有一个版本判断的。
        Andy__M:@G_Jayson 我也遇到了同样的问题,请问您最后解决了么,有做什么修改么?
        G_Jayson:@HustBroventure 你好,我也有同样的疑问,更新了AFN之后,看到AFNetworkReachabilityManager里面对版本做了判断,但还是出现了 “AF_INET”,请问这样还需要修改吗?能通过审核吗?
        NBeanN:@HustBroventure 嗯,谢谢回复,我这边没有升级新版本直接配置,暂时是能够通过的,我整理一下3.0的再把文章做一下更新吧,谢谢提醒
      • 于小水:如果使用AF2.几的版本 也只需更改这些文件就行?
        NBeanN:@defb6af0d51f 建议升级3.0以上,如果不太方便这样修改我这里暂时提交没有问题

      本文标题:iOS 适配iPV6的修改(AF及其他第三方库)

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