苹果前段时间宣布从2016年6月1日起,App Store将实施全新策略,届时所有提交至苹果App Store的iOS应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议–IPv6-only标准。因为可能会影响之后的上架,这两天花了些时间好好看了下相关的东西。大概整理如下:
如何兼容IPV6
1. 使用更高层次的网络API(Use High-Level Networking Frameworks) 避免使用socket API
蓝色部分API 默认都支持IPv6
如果你的项目中使用的是类似WebKit这样的API或AFNetWorking、Alamofire等第三方库,那么恭喜你,相关的改动应该不会很多?为什么不是没有改动,请继续看。
2. 不要使用IP地址
在有网络请求的地方,确保使用了域名,而不是192.168.0.1 这样的IP地址。
3.检查代码注意对IPv4和IPv6的支持情况
这些是IPV4特有的代码,如果有这些代码则需要修改
-
inet_addr()
-
inet_aton()
-
inet_lnaof()
-
inet_makeaddr()
-
inet_netof()
-
inet_network()
-
inet_ntoa()
-
inet_ntoa_r()
-
bindresvport()
-
getipv4sourcefilter()
-
setipv4sourcefilter()
下面是IPv4和IPv6一些定义类型的对照,也要在代码中查找下。
|
|
|
|
|
|
|
|
|
|
本身我们的项目中使用了AFNetWorking,网络接口的封装也是在此基础上,但是在第3项检查时,发现代码中只有 sockaddr_in 而没有 sockaddr_in6 ,为什么呢?因为我们的项目早先使用的是AFNetWorking的2.5.X版本,而官网上最新的版本是3.1.0。果断更新之,预料之中,最新的版本是支持IPV6的。所以提醒看到这里的同学,一定要检查2、3项,看是否确定支持IPV6,防止老版本的第三方库未支持IPV6。
参考资料:
Supporting IPv6-only Networks
https://developer.apple.com/news/?id=05042016a
Supporting IPv6 DNS64/NAT64 Networks
IPv6-only 的兼容性解决方案
http://www.jianshu.com/p/8837739251ad?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
Application Aspects of IPv6 Transition
相关推荐
开发者应确保自己的服务器和应用代码全面兼容IPv6,包括第三方库和服务。同时,对于国内的开发者,考虑到中国运营商的IPv6部署情况,可能需要与教育网或其他支持IPv6的网络提供商合作,以便在苹果的IPv6-only环境中...
在iOS开发中,IPv6的支持已经成为了不可或缺的一部分,因为全球互联网正在从IPv4过渡到IPv6,以应对IP地址耗尽的问题。IPv6是下一代互联网协议,提供了更大的地址空间,提高了网络效率。本文将深入探讨iOS应用在IPv6...
在iOS开发中,AFNetworking是一个广泛使用的网络库,它提供了HTTP请求和响应的简便方法。在标题"AFNetworking.3.0-兼容ipv6.zip"中提到的“3.0”指的是AFNetworking的版本号,这表明我们关注的是该库的一个特定更新...
"iOS AFNetworking3.0支持ipv6"这个标题表明AFNetworking已经更新到3.0版本,以兼容IPv6网络环境。 IPv6是互联网协议的第六版,是Internet Engineering Task Force(IETF)为解决IPv4地址耗尽问题而设计的一种新的...
在iOS平台上,Apple公司对于应用程序的兼容性和网络功能有严格的要求,包括对IPv6的支持。"Unity-ipV6解决方案亲测试验过"这个标题表明这是一个经过验证的、针对Unity游戏引擎的解决方案,用于帮助开发者解决其iOS...
在Unity中开发iOS应用时,由于苹果公司的要求,所有的应用程序必须能够通过IPv6网络进行通信。这涉及到Unity引擎的网络堆栈、插件以及第三方库的适配。以下是一些关键步骤: 1. **检查网络代码**:确保所有的网络...
在iOS应用开发中,开发者经常会遇到一些特定的问题,如IPv6网络环境下的兼容性问题以及后台定位服务的审核困扰。这些问题对于应用上线App Store来说至关重要,因为苹果对这些问题有着严格的审核标准。本篇文章将深入...
iOS IPV6 注意事项 V2016-08-26.doc"提醒开发者,自iOS 9开始,苹果要求所有应用必须支持IPv6-only网络环境。开发者需要确保他们的应用在纯IPv6环境中也能正常工作。 **9. 绘图问题** "32. 使用Canvas.DrawPath...
**libcurl静态编译库详解** ...这个特定的压缩包文件包含的...对于需要在XP系统上开发网络通信功能的应用程序,这个库是一个实用的选择。然而,开发者应关注其局限性,如缺少IPv6和某些安全特性,并考虑适时更新和升级。