苹果App Store新规:6月1日后所有应用必须支持IPv6-only网络
来源:互联网 发布:linux命令删除文件内容 编辑:程序博客网 时间:2024/05/18 18:42
在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上网。
- 苹果App Store新规:6月1日后所有应用必须支持IPv6-only网络
- 苹果:6月1日后所有应用必须支持IPv6-only网络
- 苹果:所有应用必须支持IPv6-only网络
- 苹果公司6月1日后发布的应用必须支持IPv6-Only网络的解决办法(底层socket连接的IPv6支持方案)
- 5月1日始 苹果所有应用必须支持Retina屏
- iOS 应用完全支持 IPv6-ONLY 网络
- 2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能
- 解决App Store 上架 IOS 程序必须支持IPV6
- 《苹果要求Mac App Store应用必须支持ARC》看完之后的感想
- 苹果审核ipv6-only网络
- 苹果要求所有新app以及版本更新必须支持iOS 8 SDK和64-bit
- iOS 应用如何完全支持 IPv6-ONLY 网络?
- 苹果强制适配IPv6-only网络 该怎么做iOS应用兼容适配IPv6
- 向苹果App Store提交新应用的图文教程
- Swift - 如何让应用支持IPv6-only网络(附:搭建IPv6测试环境)
- 6月1号后苹果爸爸只爱IPv6 Cocos2d-x更新支持详解
- 2011年11月18日 苹果App Store支持人民币支付
- App上架重磅通知:App Store安全新规17年1月生效
- Android 设计模式
- Cisco路由器进行ip限速的配置方法
- 详谈 UNIX 环境进程异常退出
- CentOS 6.3开机自动挂载磁盘和文件夹
- 内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程)
- 苹果App Store新规:6月1日后所有应用必须支持IPv6-only网络
- LeetCode 147. Insertion Sort List(插入有序链表)
- Linux里必须会的redis命令
- 2016.5.23笔记
- Android DEX 分包
- eclipse使用
- Android面试题
- Java导出jar包(并用bat命令执行)
- iOS、mac开源项目及库汇总