在WWDC2015上苹果宣布iOS9将支持纯IPv6的网络服务。2016年初开始所有提交到App Store的应用必须支持IPv6。为确保现有的应用是兼容的,我们需要注意下面几点。

不建议使用底层的网络API

下图展示的蓝色部分的这些API都是不存在兼容性问题的,而我们平时自己用的包括那些第三方的网络库大部分都是用的这些API。

Networking frameworks and API layers

大部分情况下,我们用高级的API完全能够实现我们的需求,而且高级API封装的很便于使用,很多底层的像适配IPv6的工作都已经帮我们做好了。而用底层API会有大量的工作要我们自己来做,更容易产生bug。但你如果确实需要用底层的POSIX socket API, 请参照这个RFC4038: Application Aspects of IPv6 Transition的指导。

不要用IP地址

比如下面这个API,nodename这个参数不要传IP地址,而应该用域名

SCNetworkReachabilityCreateWithName

这个方法在著名的Reachability中是用到的,我们常用的网络库AFNetworking就用了这个。所以用到的同学得好好查一下了,另外这个项目的作者几天前刚刚就这个问题有一个新的提交,不过最新的release版本中还没有加进去,可以点下面链接先去看看他都改了哪些地方。

Added support for IPv6 to Reachability #3174

检查不兼容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测试环境

最后我们来搭一个IPv6的测试环境吧,你所需要的就是一台用非Wi-Fi的方式上网的Mac电脑。

我们的要做的其实就是用Mac做一个热点,然后用iPhone连接这个Wi-Fi,听起来很容易,我相信大家在公司就是这么干的吧。

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

System Preferences

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

Sharing

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

现在我们用iPhone连接上这个刚创建好的热点就可以测试了,注意此时要把iPhone设成飞行模式,以保证只用Wi-Fi上网。

针对苹果最新审核要求为应用兼容IPv6相关推荐

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

    在WWDC2 015上苹果宣布iOS 9将支持纯IPv6的网络服务.2016年初开始所有提交到App Store的应用必须支持IPv6.而今年5月初,苹果宣布6月1日后所有应用必须支持IPv6-onl ...

  2. ios服务器需要开启ipv6的支持,针对iOS审核要求为应用兼容IPv6

    开发中使用IPv6的好处 1.IPv6:避免了网络地址转换(NAT) 2.通过网络通过使用简化的头提供了更快的路由 3.防止网络分段 4.避免广播邻居地址解析 不建议使用底层的网络API 下图展示的蓝 ...

  3. “熊孩子”乱敲键盘攻破 Linux 桌面;苹果开源代码被发现包含兼容微信的代码;网传蚂蚁启用OKR替代KPI | EA周报...

    EA周报 2021年1月22日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.Flutter 在鸿蒙系统上成功运行 2."熊孩子"乱 ...

  4. 1909升级卡64_苹果最新系统 macOS Catalina 10.15正式版更新,有哪些升级注意事项

    苹果最新系统 macOS Catalina 10.15 正式版上线啦,此次更新带来了许多重大改变,包括 iTunes 正式被拆分为播客.电视.音乐 3 款独立应用.新系统新增「屏幕时间」.「查找」.「 ...

  5. voxelnet_苹果最新机器学习论文:使用VoxelNet进行3D物体检测

    原标题:苹果最新机器学习论文:使用VoxelNet进行3D物体检测 原文来源:arXiv 作者:Yin Zhou.OncelTuzel 「雷克世界」编译:嗯~阿童木呀 多啦A亮 现如今,3D点云(3D ...

  6. cdr mac majave os_苹果最新 macOS Mojave 10.14 正式版 懒人镜像

    本帖最后由 kissfox 于 2018-10-15 10:24 编辑 苹果最新 macOS Mojave 10.14 正式版 懒人镜像 近期很多人在找我帮忙找MAC OS Mojave 10.14苹 ...

  7. 怎样防止苹果系统更新_苹果最新系统更新后,为何会导致游戏打不开呢?

    展开全部 因为在手2113机系统更新之后,所属于的苹果系统已经5261不兼容游戏的原本的4102版本了.用过苹果手机1653的其实我们都知道,对于苹果手机来说,它的系统更新以及一些在Appstore下 ...

  8. m1芯片 php,苹果M1 版 MacBook软件兼容实测:VS Code不能用 PHPStorm可运行

    苹果宣布今后的 Mac 将使用自研 ARM 架构的芯片.据苹果报道,从英特尔平台过渡到自家平台将花费大约两年的时间,在此期间,开发者人员将把应用程序移植到自家新平台上. Mac 程序的移植可以采用 R ...

  9. 苹果最新 Mac OS X El Capitan 正式版系统 dmg 镜像下载 / 升级安装程序

    自从 WWDC 2015 大会发布之后,经过一段时间的内部测试,苹果最新的 iOS 9 以及 Mac 操作系统 OS X El Capitan (酋长石) 终于提供下载并正式与大众见面了. 这次 OS ...

最新文章

  1. 十年中文技术社区风雨之路 今晚4位老炮畅聊过去未来
  2. 华为OJ 名字美丽度
  3. Bootstrap 按钮组
  4. 2020大学计算机知到答案,2020年_知到_大学计算机(济南大学)_网课答案
  5. js java自动部署_vue 自动化部署 jenkins 篇
  6. input file HTML控件控制
  7. 准备入行Web前端,又担心适不适合,怎么办?
  8. 纳斯达克收购金融数据提供商Quandl
  9. springmvc(2)Controller源码简单解析
  10. Java集合类源码解析:Vector
  11. 西门子g120变频器接线图_西门子G120变频器通过IOP-2面板初始设置
  12. srt文件从英文翻译到中文
  13. 基于Android studio+SSH的单词记忆(背单词)APP设计
  14. i春秋 - Exploit-Exercises: Nebula - level06
  15. MsXml创建和解析XML示例
  16. 画图软件修改图片分辨率
  17. 为企业数字人才建粮仓:专访极客邦科技双数研究院院长付晓岩
  18. 递归函数c语言求爬格子,指标的含义,真或假.doc
  19. 运维生涯中总有一次痛彻心扉的rm命令
  20. 华大HC32A460 系列介绍(四)

热门文章

  1. DB2: SQL0902C A system error occurred. Subsequent SQL statements cannot be processed. IBM software
  2. 《神经网络与深度学习》-注意力机制与外部记忆
  3. 洛谷 P1265 公路修建 题解
  4. CSS3转换属性—transform之translate、rotate、scale函数详解
  5. 大悲寺——依教奉行溯正源,良苦用心谁人知?纵然世间一比丘,不退初心证菩提。[转]
  6. 冯巩的155句经典语,太有才了,这才是真正的幽默!
  7. 信任,问责制以及时间在哪里?
  8. 转型架构师之路——郑天民
  9. 《与熊共舞》第一章--逆“风”而行
  10. UE4 sequence 播放速率的调整(4.27)