iOS 适配iPV6

作者: 晓飞90 | 来源:发表于2017-08-29 18:46 被阅读60次

1. IPV6简单介绍

  1. 网络是IPV6还是IPV4是由运营商和企业逐渐部署的。

  2. 客户端向服务器端请求域名解析,首先通过DNS64 Server查询IPv6的地址,如果查询不到,再向DNS Server查询IPv4地址,通过DNS64 Server合成一个IPV6的地址,最终将一个IPV6的地址返回给客户端。

  3. 但是考虑到我们目前的实际网络环境仍然是IPV4网络,所以应用需要能够同时保证IPV4和IPV6环境下的可用性。从这点来说,苹果不会去扫描IPV4的专有API来拒绝审核通过,因为IPV4的API和IPV6的API调用都会同时存在于代码中(不过为了减小审核被拒风险,建议将IPV4专有API通过IPV6的兼容API来替换)。

  4. Apple官方声明iOS9开始向IPV6支持过渡,在iOS9.2+支持通过getaddrInfo方法将IPV4地址合成IPV6地址。其提供的Reachability库在iOS8系统下,当从IPV4切换到IPV6网络,或者从IPV6网络切换到IPV4,是无法监控到网络状态的变化。

2. 本地搭建IPv6测试环境

所需要的就是一台用非Wi-Fi的方式上网的Mac电脑。我们的要做的其实就是用Mac做一个热点,然后用iPhone连接这个Wi-Fi。

区别是这次我们产生的是一个本地的IPv6 DNS64/NAT64网络,这项功能是OS X 10.11新加的。和我们以前开启热点方式不一样的地方在于,我们在“System Preferences”界面选中“Sharing”的同时,要按住“Option”键。如下图:

841355-bd2a25d779153e4c.png

之后在“Sharing”界面中,我们会看到和之前不一样的地方,就是红框所标的地方,多了一个叫“Create NAT64 Network”的选框,选中它。如下图:

841355-8e5aa1eac3c24a8d.png

之后就是按照正常的创建热点的流程走完就行了。

3. AFN 适配了IPV6

以前没有时间,今天有一点空隙,稍微看了一下AFN对IPV6的适配。

  • 主要修改
    • 主要修改的文件AFNetworkReachabilityManager.m。在这个文件里面:我找到修改的地方是:
   + (instancetype)manager
{
#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
   struct sockaddr_in6 address;
   bzero(&address, sizeof(address));
   address.sin6_len = sizeof(address);
   address.sin6_family = AF_INET6;
#else
   struct sockaddr_in address;
   bzero(&address, sizeof(address));
   address.sin_len = sizeof(address);
   address.sin_family = AF_INET;
#endif
   return [self managerForAddress:&address];
}

   ```

相关文章

  • 【转藏】iOS iPV6适配

    以下是我看到的几篇关于ipV6适配问题的几篇比较好的博文,收藏!适配iOS应用兼容IPv6 DNS64/NAT64...

  • IPV6总结

    适配IPV6 在WWDC2015上苹果公司宣布iOS9将支持纯IPV6的网络服务。自从5月初Apple明文规定所有...

  • IOS集成第三方支付、分享、登录功能小结

    原标题 : IOS集成微信支付或者支付宝支付功能小结 2016.7.1。由于苹果强制要求适配ipv6,本文demo...

  • 苹果审核 - IPv6被拒日记

    从去年6月份开始,不断听说有其他公司的iOS版本因IPv6的问题被拒,但是由于我们很早就从网络层适配了IPv6,所...

  • iOS 适配iPV6

    1. IPV6简单介绍 网络是IPV6还是IPV4是由运营商和企业逐渐部署的。 客户端向服务器端请求域名解析,首先...

  • iOS 适配IPv6

    最近一直看到有人说app因为没有适配IPv6而被拒的,可是我的app却什么都没做也没有被拒,闲来无事看了看原因。 ...

  • iOS 适配ipv6

    博客地址已迁移到:https://devthinking.com 在App中适配 在传nodename的时候不要用...

  • iOS IPV6适配

    ip地址替换成域名后,注意修改以上关键字

  • IOS集成第三方支付、分享、登录功能小结

    IOS集成第三方支付、分享、登录功能小结 作者 蜡笔小新 2016.7.1。由于苹果强制要求适配ipv6,本文de...

  • Objective-C Category的妙用

    (一)覆盖主类的方法实现 XMPP的IPV6适配 苹果要适配IPV6(only)了,查了一下网上的方法...

网友评论

    本文标题:iOS 适配iPV6

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