支持纯 IPv6 网络

自 2016 年 6 月 1 日起,提交至 App Store 的所有 app 都必须支持纯 IPv6 网络。由于 NSURLSession 和 CFNetwork API 都已支持 IPv6,大多数 app 不需要进行任何修改。但如果您的 app 使用的是 IPv4 专用的 API 或硬编码的 IP 地址,则需要进行修改。在将 app 提交至 App Store 进行审查之前,请务必测试 IPv6 兼容性。

有关支持 IPv6 网络的更多信息,请查看“支持 IPv6 DNS64/NAT64 网络”。

在纯 IPv6 环境中测试您的 app

您应在纯 IPv6 网络中测试您的 app。如果没有此类网络,可按照“IPv6 DNS64/NAT64 兼容性定期测试”中的说明设置测试网络。

重要信息:如果使用支持 WWAN 的设备来执行测试,请务必在测试前关闭 WWAN。这样将确保设备使用纯 IPv6 Wi-Fi。

注:您可以使用“设置”>“蜂窝移动网络”>“蜂窝移动数据”(对于北美之外的英语本地化版本,请使用 Settings > Mobile > Mobile Data)来关闭 WWAN。

IPv4 引用

您无需从 app 中移除对纯 IPv4 结构的所有引用。我们可以接受包含此类引用和使用纯 IPv4 结构,只要在纯 IPv6 环境中能正常工作即可。

重要信息:我们鼓励采用地址族无关的 API,而不是为 IPv4 和 IPv6 保留单独的代码路径。

服务器更新

如果您的服务器在更广的互联网上运行,无需立刻更新服务器。纯 IPv6 设备可以通过 DNS64/NAT64 访问服务器。

注:当然,最终还需更新您的服务器以支持 IPv6。

如果您在 iOS app 内嵌入了服务器(例如,支持用户在 app 和服务器之间传输文件的 Web 服务器),则应确保该 app 能在纯 IPv6 环境中正常工作。

从 IPv4 地址合成

如“使用系统 API 合成 IPv6 地址”中所述,自 iOS 9.2 和 OS X v10.11.2 起,可以使用 getaddrinfo 从 IPv4 地址合成 IPv6 地址。您的 app 将在运行最新版 iOS 的设备上进行测试。

警告:自行合成 IPv6 地址会比较困难。具体来说,将 IPv4 地址与知名前缀 (64:ff9b::/96) 合并来构成 IPv6 地址,是一种不太安全的方式。这种方式在部分 NAT64 网络中或许可行,但并不是一种通用的问题解决方案。

基于 IPv4 网络的配件

我们强烈建议您对配件进行修改,使其支持 IPv6 或 IPv4 链路本地寻址,以便能够在纯 IPv6 网络上工作。无论使用上述哪种方式,都可确保当您的 app 和配件同时位于纯 IPv6 网络中时,两者之间能够通信。

如果您的配件不支持以上两种方式,也无法通过修改配件来实现支持,那么您的配件从根本上与 IPv6 的支持要求不兼容。

注:上述内容仅适用于您的 app 和配件在本地网络中的通信。在其他方面,您的 app 应该能够在纯 IPv6 环境中正常工作。