
事件导读:App提审,因网络不适配IPv6被拒!
今天陆续有CP反馈因IPv6问题导致产品被拒,苹果具体回复如下:

自从5月初Apple明文规定所有开发者在6月1号后来提交新版本需要支持 IPv6-Only的网络。也是从那时候开始,大家便热火朝天的研究如何支持 IPv6,但百密终有一疏,类似的惨剧还会陆续上演。今天文公子简单介绍IPv6,以及在那些模块部署IPv6有助于通过苹果审核。
一 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
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
*本文作者文公子(微信:nokia0729)是一枚鲜肉型的ASO优化分析师,旨在APP推广交流,转载需获取本人的许可并注明来源。
*ASO专业交流平台:文公子ASO(www.wgzaso.com)和文公子ASO公众号(AppStoreOptimization)





















暂无评论内容