美文网首页
iOS一图兼容IPV6问题

iOS一图兼容IPV6问题

作者: Arthurcsh | 来源:发表于2016-10-11 15:31 被阅读308次

一、IPv6协议解读

IPv6是对IPv4地址空间的扩充。

目前用iOS设备连接Wifi、3/4G网络时,设备被分配地址皆为IPv4地址,但是随着运营商和企业逐渐部署IPv6 DNS64/NAT64网络之后,设备被分配的地址会变成IPv6地址,而这些网络称为IPv6-Only网络,且仍可以通过该网络去获取IPv4地址提供的内容。

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

IPV6

二、Apple如何审核支持IPv6

Apple要支持的IPv6其实是某些特定网络,通常称之为IPv6-Only,就是说让App在 IPv6 DNS64/NAT64 网络环境下仍然能够正常运行。当前环境下,实际网络环境还是IPv4网络,也就要求App需要能够同时保证IPv4和IPv6网络环境下的可用性。

从这点来说,苹果不会去扫描IPv4的专有API来拒绝审核通过,因为IPv4的API和IPv6的API调用都会同时存在于代码中。从这点看,最近被拒的App苹果不是通过IPv4的专有API接口扫描拒绝的。

Apple官方声明:iOS 9开始向IPv6支持过渡,在iOS 9.2支持IPv4地址合成IPv6地址,其提供的Reachability库在iOS 8系统下,当从IPv4切换到IPv6网络,或者从IPv6网络切换到IPv4,是无法监控到网络状态的变化。也有一些开发者针对这些Bug询问Apple的审核部门,给予的答复是只需要在苹果最新的系统上保证IPv6的兼容性即可。

当下要解决的是App的主流程支持IPv6,通过苹果审核即可。对于某些不支持IPv6的模块,可以暂时不用添加;考虑到IPv6还有一个较长的过渡期,短时间内不会影响我们用户的正常使用。

蓝色是推荐使用

三、当下,那些模块需要支持IPv6

1. NSURLConnection,不建议使用底层的网络API,推荐使用第三方支持IPV6库,如AFNetworking。

NSURLConnection在iOS9系统上是支持IPv6。

2. Reachability

Reachability可不做任何修改,在iOS 9上可以支持IPv6和IPv4两种网络环境,但是在iOS 9以下会存在bug,但是苹果审核时并不关心这点。

3. socket API

App中使用了长连接,其必然会使用底层socket API,socket API需要支持IPv4和IPv6。

4. 本机 IP /设备网关地址/设备 DNS 地址/域名 DNS 地址获取都需要支持IPv6。

5. ping 方案/ traceRoute 方案支持 IPv6。

搜一下工程里有没有下面的这些API,这些都是只针对IPv4做处理的,有的话就删了。

inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()

如果用到了下面左边的这些IPv4的类型,那么它们相应的IPv6类型也需要做处理

ipv4对比ipv6

四、服务器IPv6网关测试

http://ipv6-test.com/validate.php

相关文章

  • iOS一图兼容IPV6问题

    一、IPv6协议解读 IPv6是对IPv4地址空间的扩充。 目前用iOS设备连接Wifi、3/4G网络时,设备被分...

  • 【转藏】iOS iPV6适配

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

  • 20170309 : Network ~  IPV6

    大纲 ipv6审核被拒绝的解决方案  手机测试 iOS-用手机网络测试Ipv6 6.1后苹果要求APP兼容I...

  • 针对苹果最新审核要求为应用兼容IPv6

    针对苹果最新审核要求为应用兼容IPv6 在WWDC2015上苹果宣布iOS9将支持纯IPv6的网络服务。2016年...

  • IPv6

    IPv6的提出: CIDR不能从根本上解决IP地址空间匮乏的问题。IPv6与IPv4不兼容,但与其它Interne...

  • ipv6网络下无法加载问题而被拒

    最近出现了多起因ipv6网络下无法加载问题而被拒的事件。其实,除了App本身不兼容ipv6会导致无法加载外,审核人...

  • iOS之兼容问题

    iOS之兼容问题 iOS 项目向老版本兼容的常规和非常规方法。 概念 Deplyment TargetAPP能支持...

  • IPV6适配

    英文好的可以直接看苹果官方介绍 中文资料1,针对苹果最新审核要求为应用兼容IPv62,iOS应用支持IPV6,就那...

  • iOS----如何检查域名是否支持ipv6

    一、iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你...

  • APP轻松通过苹果IPv6审核——阿里云网络产品级解决方案

    背景 2016年初起,苹果要求上架iOS App Store的应用要兼容IPv6。这个决定虐惨了中国大陆的App开...

网友评论

      本文标题:iOS一图兼容IPV6问题

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