【问题标题】:How to test iOS app is it supporting IPv6? [closed]如何测试 iOS 应用程序是否支持 IPv6? [关闭]
【发布时间】:2016-09-02 23:08:25
【问题描述】:

我有 2015 年和 2014 年构建的应用程序。如何针对 IPv6 测试它们?
如果我的应用不支持 IPv6,我该怎么办?

我的应用正在使用 AFNetworking 和 Alamofire。我主要连接到域(例如 api.example.com/v1/...)。只有 1 个应用使用 IP:(例如:12.12.12.12:3000/api/v1/...)。

websockets 有问题吗? (ws://12.12.12.12:8080/api/....)。

【问题讨论】:

标签: ios swift ipv6


【解决方案1】:

如果不详细了解您的应用,就很难确定。具体来说:

  • 您是否直接使用 IP 地址?
  • 您是否允许用户以 URL 以外的某种形式直接输入它们?
  • 您是否直接使用 API 而非 Apple 的基于 NSURL 的 API 进行网络连接?
  • 您是否出于任何原因明确地自己进行 DNS 查找?

如果所有这四个问题的答案都是“否”,那么您无需进行任何更改即可支持 IPv6。

当直接使用 IP 地址时,如果用户需要能够输入这些地址,您可能需要添加代码以允许用户也输入 IPv6 地址,并适当地解析它们。

如果您的代码自行执行 DNS 解析,然后使用 IP 地址执行某些操作,则必须更新它以处理 IP 地址并将它们正确传递给您使用 IP 地址调用的任何 API。

硬编码的 IP 地址是个问题。您需要为这些 IP 地址创建一个主机名。这样一来,设备的 DNS 解析器就可以使用各种魔法来创建一个虚假的 IPv6 地址,从而通过某处的路由器将网络地址转换为真实的 IPv4 地址。

据我所知,AFNetworking 3.0 及更高版本应该没问题,最近版本的 AlamoFire 也应该没问题。确保您是最新的。

【讨论】:

  • 我在一小时前更新了我的问题。请阅读并更新您的答案。谢谢你:)
  • Apple 在how to test an app for IPV6 上有一个指南
  • 按照 Apple 的惯例,需要 14 页来详细解释测试过程,但没有在顶部包含 tl;dr,这会告诉 99% 的开发人员他们不需要首先阅读那份 14 页的指南。 :-)
猜你喜欢
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 2012-09-11
  • 2022-12-23
  • 1970-01-01
  • 2010-11-01
相关资源
最近更新 更多