2016-10-07 12 views
1

昨日、AppStoreでリリースされる新しいすべてのアプリケーションのIPv6のみのネットワークに関する必須のサポートについて読まなくてはなりませんでしたが、私のアプリがこれを理由としてAppleに拒否されました。iOSアプリケーションテスト用にIPv6専用ネットワークを設定するにはどうすればよいですか?

私はこれを私の最後から再現しようとしています。私はApple's guideを同じものにしてNAT64ネットワークをセットアップし、それにiPhoneを接続しました(screenshot)。

しかし、私は、デバイス上でのIPv6接続性を確認するためにtest-ipv6.comまたは任意の他のウェブサイトに乗り越えるとき、それはメッセージ「ないIPv6アドレスがを検出」が表示されます。また、私はipv6.google.comをロードできないと報告されており、IPv6ネットワーク上でのみロードされています(間違っていると私を修正してください)。

私に何か不足していますか、またはネットワーク上の互換性だけをIPv6用にテストするために何かできますか?

P.S:このNAT64ネットワークで試したところ、アプリケーションが正常に動作し、ページが正常に読み込まれました。しかし、Appleの拒否応答では、それらのAPIは失敗に終わった。

+0

([あなたがグローバルIPv6アドレスを参照することを意図していない] http://stackoverflow.com/を受け入れてください。 a/39862158/1068283)を参照してください。 IPv4アドレスのみが表示されます。この場合、iOSデバイスとNAT64ネットワークを実行するMacとの間のローカルネットワークセグメントのみがIPv6を使用します。 –

答えて

0

AFNetworkingを使用していますか? はいの場合は、クラスを更新してください。 クラスAFNetworkReachabilityManagerのAFNetworkingライブラリのコードの次の行を変更します。

CHANGE AF_INET TO AF_INET6;

+ (instancetype)sharedManager { 
    static AFNetworkReachabilityManager *_sharedManager = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     struct sockaddr_in address; 
     bzero(&address, sizeof(address)); 
     address.sin_len = sizeof(address); 
     address.sin_family = AF_INET6; //Change AF_INET TO AF_INET6 
     _sharedManager = [self managerForAddress:&address]; 
    }); 

    return _sharedManager; 
} 

それ以外の場合、ネットワークにはどのクラスまたはライブラリを使用していますか?

編集:あなたが要求したように、ここでは、あなたのアプリケーションをテストし、それは準備ができたIPv6ているかどうかを確認する方法についてのチュートリアルです:

http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/

それはあなたのMacでのIPv6 NAT64唯一のネットワークの構築をカバーMacからあなたの他のWi-Fi(またはBluetoothなど)デバイスにインターネット接続を共有します。

次に、すべての呼び出しがipv6専用ネットワーク経由で行われていることを確認して、アプリ内ですべてのテストを行うことができます。

EDIT2:

これらのウェブサイトは、あなたのIPv6 IPアドレスを表示することはできません。このチュートリアルを使用した場合、ipv6アドレスはプライベート(ネットワーク内にあります)のアドレスです。これはあなたのiPhoneとあなたのMac間の通信に使用されます。 インターネットのウェブサイトに表示されているのは、お使いのインターネットサービスプロバイダによってモデムに与えられ、一般的にはipv4ネットワークである、PUBLIC ipです。

結論として、あなたのアプリはipv6アドレスで動作しています。これらのテストサイトでは、ルータ/モデムの公開アドレスしか表示されないため、これらのテストWebサイトは検出されません。

パブリックとプライベートのIPアドレスの詳細については、This linkを参照してください。この場合は

は、あなたが検索するものである、またはそれはあなたの問題を解決するかどうか、その答え:)

+0

はい、私はAFNetworkingを使用しています。私はAFNetworkingを3.1から2にアップデートしました(これは、このクラスの更新とIPv6のサポートを提供しています)。これは問題を解決したかもしれません(そして、私はまだAppStoreにこの変更を加えたビルドを提出していません)。 私の質問は、実際にiPhone上のIPv6ネットワーク上で自分のアプリケーションをテストすることでした。 –

+0

。私はipv6ネットワーク上でアプリケーションをテストする方法に関するチュートリアルで答えを更新します。 +心配しないでください、私はこの問題に直面し、AFNetworkingをアップデートすることで承認されたアプリが許可されました:) –

+0

申し訳ありません!これは私の質問で言及したのと同じチュートリアルです。 IPv6テストウェブサイトのいずれかに行くと、同じ結果が得られます。** "IPv6アドレスが検出されていません" ** –

関連する問題