纯 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。

注:关闭 WWAN 的操作路径为“设置”>“蜂窝网络”>“蜂窝数据”(对于北美之外的英语本地化版本,请使用 Settings > Mobile > Mobile Data) 。

IPv4 引用

你无需从 App 中移除对纯 IPv4 结构的所有引用,只要在纯 IPv6 环境中能正常工作即可。

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

服务器更新

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

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

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

从 IPv4 地址合成

如“使用系统 API 合成 IPv6 地址 (英文)”中所述,自 iOS 9.2OS 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 环境中正常工作。