近一段时间以来,因IPv6问题而被拒的情况有增无减,个别应用尝试多种方法仍未过审,部分CP叫苦不迭。故心疼他们的我将IPv6详细内容整理了出来,以供参考。
一、IPv6常见被拒理由
据统计结果显示,因IPv6问题导致被拒的主要原因有以下几种:存在网络连接问题、无法加载任何内容、无法访问App......部分被拒理由原文如下↓↓↓
1.被拒理由原文:
Performance-2.1WediscoveredoneormorebugsinyourappwhenreviewedoniPad&iPhonerunningiOS10.2onWi-FiconnectedtoanIPv6network.Specifically,therewasnetworkconnectingissuewithinyourapp.…
翻译:
在与连接到IPv6网络的Wi-Fi上运行iOS10.2的iPad和iPhone上进行审查时,我们在应用中发现了一个或多个错误。
具体来说,您的应用中存在网络连接问题。
……
2.被拒理由原文:
Performance–2.1WediscoveredoneormorebugsinyourappwhenreviewedoniPad&iPhonerunningiOS10.3.1onWi-FiconnectedtoanIPv6network.Specifically,wewereunabletoloadanycontent.…
当在连接到IPv6网络的Wi-Fi上运行iOS10.3.1的iPad和iPhone上查看时,我们在应用中发现了一个或多个错误。
具体来说,我们无法加载任何内容。
3.被拒理由原文:
Performance–2.1WediscoveredoneormorebugsinyourappwhenreviewedoniPad&iPhonerunningiOS10.3.1onWi-FiconnectedtoanIPv6network.Specifically,wewerestillunableaccessyourapp……
当在连接到IPv6网络的Wi-Fi上运行iOS10.2的iPad和iPhone上进行审查时,我们在应用中发现了一个或多个错误。
具体来说,我们仍然无法访问您的应用。
二、苹果针对IPv6的审核机制&流程
从去年6月1日开始,苹果规定所有提交至AppStore的应用必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准。
不过很多开发者反应即使严格按照苹果提供的方法来测试,也依然被拒。其实这和对苹果的审核机制不甚了解有很大关系,下面我为大家科普下苹果针对IPv6的审核机制和流程:
()
图示展示了苹果审核时的简单原理:
苹果AppStore审核人员在美国的IPv6-Only环境下对APP进行访问(审核),提交App后,
如果AppServer支持IPv6,则可直接访问;
如果AppServer不支持IPv6,则通过DNS64+NAT64进行访问。
据统计,大部分开发者的App服务器都是不支持IPv6直接访问的。也就是说,AppStore审核人员审核时,基本都是用NAT64+DNS64进行访问的。那么接下来我们重点了解一下NAT64+DNS64的访问机制,如下图示:
从上图可以看出审核的关键在于能不能获取一个有效的ServerIPv6地址。
苹果公司的App审核人员进行审核时,由于国内大部分开发者的服务器不支持IPv6-Only访问,因此只能通过苹果公司自己的NAT64+DNS64服务器进行测试,如果苹果的服务器不能有效的给AppServer返回一个IPv6地址,就会导致无法访问等问题。其结果便是审核失败,App被拒。
三、被拒原因&解决方式详解
通过综合被拒理由原文、IPv6的审核机制和流程等,其实我们可以很容易地总结出iOS应用因IPv6审核被拒的大体原因:
1、国内大部分App服务器不支持IPv6-only;
2、苹果公司的审核环境不能自动将国内服务器地址转成IPv6地址,导致访问失败;(据样本统计,绝大多数App是因为这个原因木有过审......)
当然,除了这两点之外,国际线路带宽严重拥堵等原因也会造成访问的不稳定或访问失败。
而对于因IPv6问题审核被拒后所能采取的方法,我也进行了一番整理,大家可以根据实际情况来采取相应的措施:
四、结语
从苹果实施这一规定起,到现在已经有10个多月的时间了。但是因IPv6被拒的App数量一直居高不下。希望各位开发者们看到以上内容能够摆脱审核时因IPv6被拒的情况,顺利通过审核。
自2016年6月1日起,苹果要求所有提交AppStore的iOS应用必须支持IPv6-only环境,背景也是众所周知的,IPv4地址已基本分配完毕,同时IPv6比IPv4也更加高效,向IPv6过渡是大势所趋。
然而在对IPv6进行兼容适配过程中,很多开发者在本地环境测试通过,却在App Store审核时被拒,这种情况下可以首先排查是否由DNS解析失败引起,那么如何验证DNS服务器是否正确响应了IPv6地址的解析请求呢?搭建好DNS64环境后,可以通过以下命令查询:
$dig dnspod.cn aaaa
验证DNS解析的原因是,App访问网络的第一步就是进行DNS解析,App Store审核时会先访问DNS服务器,获得iOS应用服务器的IPv6地址,再进行访问,如果这时DNS服务器无法成功解析到IPv6地址,即使在本地搭建的IPv6-only环境中测试成功,仍然会出现在提交App Store审核时被拒的情况,所以选择一个稳定性、兼容性俱佳的域名解析服务至关重要!
经过全面的测试和灰度发布,腾讯云DNSPod域名解析已全面支持App
Store IPv6-only网络环境,已有成功通过审核案例,并且在境内外均验证解析成功
这条通知中提到,2016年6月1日开始,所有提交到App Store上的应用必须支持IPv6-only的网络。苹果还在最新的 App Store Review Guidelines中增加了这样的表述
同时苹果也声明,大部分应用不需要进行任何更改,因为NSURLSession和CFNetwork API已经支持IPv6了,所以使用NSURLSession和CFNetwork API进行开发的开发者们大可不必担心这个问题。
但是,如果你的应用使用了IPv4专属API或硬编码IP地址,那
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)