Apple官方近期发布了关于IPv6-only网络环境兼容的APP审核要求,详情参见:
https://developer.apple.com/news/?id=05042016a,
关于IPv6-only相关技术细节参见Apple官方文档:
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1
当前阿里云移动服务全系列产品,包括移动推送、移动数据分析、HTTPDNS、移动加速、移动存储(OSS)等均已兼容IPv6-only网络环境。根据Apple官方人员的[社区回复](https://forums.developer.apple.com/message/136166#136166
),最新的审核标准为“APP在最新的iOS系统版本上是否兼容IPv6-only网络环境”(仅作参考,请以Apple官方说明为准),而iOS9.0版本以上的官方网络库会自动转换IPv4地址以适配IPv6-only网络环境,因此本次更新的升级建议如下:
1.使用移动加速的开发者请及时更新SDK,老板移动加速将不支持IPv6-only网络环境;
2.使用HTTPDNS的开发者请确认在通过HTTPDNS解析IP后是否使用了官网网络库进行网络请求。若是,您无需做任何变更。若不是,您可以通过升级HTTPDNS SDK的方式适配IPv6-only网络环境;
3.使用其他移动服务的开发者,您可自主选择是否升级对应的SDK。这部分服务的旧版本SDK可兼容上述供参考的审核规范;
由于Apple并未正式放出相关审核标准文档,我们依然建议各位开发者及时升级相关移动服务的SDK。
关于IPv6-only网络环境的模拟适配测试可参考Apple技术文档。
注:
HTTPDNS场景下兼容IPv6-only网络环境需要注意的细节:
在iOS9.0以上系统中,如果您使用系统网络库如NSURLSession,系统网络库会自动进行IP格式转换适配IPv6-only网络,因此您不需要做任何更改即可适配IPv6-only网络环境。在9.0版本以下的系统中,HTTPDNS为您完成了IP地址的转换工作,但您需要按照下文所述的方式合理使用HTTPDNS。
当您使用IP形式的URL进行网络请求时,IPv4与IPv6的IP地址使用方式略有不同:
• IPv4: http://1.1.1.1/path
• IPv6: http://[2001:db8:c000:221::]/path
即在URL中使用IPv6地址时需要在IPv6地址基础上额外加上[]。为了方便开发者的使用,HTTPDNS提供了适配URL格式的IP获取接口getIpByHostInURLFormat/getIpByHostAsyncInURLFormat。当您通过HTTPDNS进行IP获取,并使用该IP进行基于URL的网络访问时,您可以通过上述API直接获取符合URL使用场景,格式化后的IP信息,如1.1.1.1/[2001:db8:c000:221::]。如果您仅仅为了获取精准的IP信息并另做它用,您可以继续使用老接口getIpByHost/getIpByHostAsync。
详情参见HTTPDNS SDK使用文档
钉钉搜索35248489,加入阿里云云原生应用研发平台EMAS技术交流群,探讨最新最热门的应用研发技术和实践。(或钉钉扫码加入)