最近苹果公司发布声明:自今年6月1日开始,所有提交至苹果App Store的应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准。
那么问题来了,目前的app是否支持ipv6? ,哪些需要支持ipv6?
一:测试你的app目前是否支持ipv6,如果不支持6月1以后将无法提交到商店
这里有一份wwdc2015关于ipv6的视频https://developer.apple.com/videos/play/wwdc2015/719/
利用mac分享一个ipv6的网络即可测试
首先你的mac需要有两块网卡,我测试用的是 mbp,使用有线上网,使用wifi网卡分享网络
1. 打开系统偏好设置----按住Option键------点击,分享
2. 同样按住 Option键----勾选左侧的 互联网分享----右边来源---选择本地以太网-----共享端口选择 wifi; 下面有个NAT64网络,选项,勾选上;即可;
即可创建一个ipv6的网络,测试机连接该网络,测试app的通讯情况;
二:当前app是否需要支持ipv6
如图苹果文档上说明的;
也就是说使用苹果提供的高级网络编程api,不需要处理;如:NSURlsession,CFnetwork,NSURlconnection等;webkit等
但是使用低层socket的需要去支持 ipv6;
以及使用如下 接口的都需要
-
inet_addr()
-
inet_aton()
-
inet_lnaof()
-
inet_makeaddr()
-
inet_netof()
-
inet_network()
-
inet_ntoa()
-
inet_ntoa_r()
-
bindresvport()
-
getipv4sourcefilter()
-
setipv4sourcefilter()