使用 IPv6 和 Azure 的 iOS 问题

Posted

技术标签:

【中文标题】使用 IPv6 和 Azure 的 iOS 问题【英文标题】:Problems with iOS with IPv6 and Azure 【发布时间】:2016-08-23 15:54:25 【问题描述】:

我们的一个 Xamarin.ios 应用程序被拒绝,因为服务 URI 似乎无法从 IPv6 网络获得。从 2016 年 6 月 1 日开始,Apple 希望所有 iOS 应用程序在纯 IPv6 网络中完全兼容。

Microsoft Azure 似乎还不支持 IPv6。有没有人遇到过类似的问题并且知道如何解决?

为了记录,我们使用 MvvmCross 作为框架。

更新:这是 Apple 的回应:

你好,

感谢您重新提交应用以供审核。但是,之前的问题还没有解决。


性能 - 2.1

在通过连接到 IPv6 网络的 Wi-Fi 运行 iOS 9.3.4 的 iPad 和 iPhone 上进行审查时,我们发现您的应用存在一个或多个错误。

具体来说,我们在启动时仍然遇到服务器错误。

重现的步骤是:

我们附上了屏幕截图供您参考。

接下来的步骤

请在连接到 IPv6 网络的设备上运行您的应用(所有应用都必须支持 IPv6)以确定问题,然后修改和 重新提交您的应用以供审核。

如果我们误解了您应用的预期行为,请在调解中心回复此消息,以提供有关以下方面的信息 这些功能是如何工作的。

对于新应用,请从设备上卸载所有以前版本的应用,然后安装并按照步骤重现问题。 对于更新,安装新版本作为对先前版本的更新 版本,然后按照步骤重现问题。

资源

有关支持 IPv6 网络的信息,请参阅支持 IPv6 DNS64/NAT64 网络和关于网络

如果您在重现报告的问题时遇到困难,请尝试测试技术问答 QA1764:如何 重现针对 App Store 提交报告的错误。

如果您在使用上述资源后有代码级别的问题,不妨咨询 Apple Developer Technical 支持。当 DTS 工程师跟进您时,请准备好 提供:

您的拒绝问题的完整详细信息 截图 重现问题的步骤 符号化的崩溃日志 - 如果您的问题导致崩溃日志

我们期待审核您修改后的应用。

最好的问候,

应用商店评论

【问题讨论】:

您使用的是哪些 Azure 服务?哪些 Azure 区域? 服务器不需要支持 IPv6,只能通过 DNS64/NAT64 从 IPv6 网络访问。可能的问题是您使用的是 IP 地址而不是域名,或者您的 DNS 设置不正确。来自 Apple 的实际消息是什么,如果可以分享,服务器的地址(名称/FQDN,而不是 IP)是什么? 您可能需要检查***.com/questions/37693256/… 和***.com/questions/37694403/… 可能还有***.com/a/38621881/1105889 我们没有使用 IP 地址,它是一个域。我们使用苹果关于如何设置 IPv6 wifi 进行测试的指南 (developer.apple.com/library/ios/documentation/…) 对其进行了测试,对我们来说它很有效。 【参考方案1】:

我们最终做了什么来解决这个问题:

    我们现在缓存我们通过 Cloudflare 调用的 Web 应用程序,因为 Cloudflare 可以充当 IPv6-IPv4-Gateway 我们现在在 Xamarin 上使用 ModernHttpClient,无论如何您都应该这样做以获得更好的 HTTP 性能。它使用每个平台上的本地网络库,因此它将使用自行处理所有 IPv6 的 iOS 库。

我希望这会有所帮助。至少对我们来说,它在多种情况下都有效。就 IPv6 兼容性而言,.NET 网络似乎无法在原生 iOS 上正常工作。

【讨论】:

以上是关于使用 IPv6 和 Azure 的 iOS 问题的主要内容,如果未能解决你的问题,请参考以下文章

使 iOS 应用程序符合 IPV6 [关闭]

Azure Front-Door - X-Azure-ClientIP 显示的是 IPV6 地址而不是 IPV4

Azure Load Balancer : 支持 IPv6

在家中的Azure SSH连接

ios app在提出所有建议后因ipv6不兼容而被拒绝

如何使 Azure 备份与 Terraform 一起使用?