web-dev-qa-db-ja.com

iOSアプリをテストする方法は、IPv6をサポートしていますか?

2015年と2014年に作成されたアプリがあります。IPv6でアプリをテストするにはどうすればよいですか?
私のアプリがIPv6をサポートしていない場合、どうすればよいですか?

私のアプリはAFNetworkingとAlamofireを使用しています。主にドメインに接続しています(例:api.example.com/v1/...)。 1つのアプリのみがIPを使用します(例:12.12.12.12:3000/api/v1/...)。

WebSocketに問題はありますか? (ws://12.12.12.12:8080/api/....)。

16
Altimir Antonov

アプリの詳細を知らないと、確実に言うのは困難です。具体的には:

  • IPアドレスを直接使用していますか?
  • ユーザーがURL以外の形式で直接入力できるようにしていますか?
  • AppleのNSURLベースのAPI以外のAPIを直接使用してネットワーク接続を行っていますか?
  • 何らかの理由でDNSルックアップを自分で明示的に行っていますか?

これら4つの質問すべてに対する答えが「いいえ」の場合、IPv6をサポートするために変更を加える必要はありません。

IPアドレスを直接使用する場合、ユーザーがそれらのアドレスを入力できるようにする必要がある場合は、ユーザーがIPv6アドレスも入力できるようにコードを追加し、適切に解決することをお勧めします。

コードがそれ自体でDNS解決を実行し、IPアドレスを使用して何かを実行している場合は、IPアドレスを処理し、IPアドレスで呼び出すAPIに適切に渡すようにコードを更新する必要があります。

ハードコードされたIPアドレスは問題です。これらのIPアドレスのホスト名を作成する必要があります。このようにして、デバイスのDNSリゾルバーはさまざまな魔法をかけて偽のIPv6アドレスを作成し、ルーターがどこかでネットワークアドレスを実際のIPv4アドレスに変換することができます。

私の知る限り、最新バージョンのAlamoFireと同様に、AFNetworking 3.0以降は問題ありません。最新であることを確認してください。

16
dgatwood