2016-07-05 7 views
0

アップルは私のアプリiOSアプリを拒否しました。私はこのアプリを過去2週間ストアに入れようとしています。iOS App Rejection - あなたのアプリがIPv6ネットワークをサポートしていることを確認してください

このアプリでは、IP、ポート、アカウント番号、クライアント番号、アカウントキーのデモアカウントが必要です。私はこの情報でリンゴのアカウントをいくつか作成しましたが、私は拒否され続けています。

最初は、私はios 9のために変更して免責条項を追加する必要があった場所のUIBackgroundModesに起因していました。

私はリンゴの開発者に、アプリケーションにアクセスするためのすべての情報を確認しました。彼らは再びアプリを拒絶した:アプリはIPv6ネットワーク上で見直されることに注意してください。 IPv6互換性が必要なため、お使いのアプリがIPv6ネットワークをサポートしていることを確認してください。

私は現在、デバイスの状態を監視するためにreachability 2.2を使用しています。これは、IPv4ネットワーク下のすべてのテストで完全に機能しています。

IPv6を完全にサポートするという新しいバージョンのreachability 3.0がありますが、ドキュメントに記載されているAF_INET6ではなくAF_INETを使用しているため、到達可能性が最新であるかどうかはわかりません。 AppleはreachabilityForLocalWiFiも削除しましたが、私のアプリにはそれが含まれており、IN_LINKLOCALNETNUMを監視しています。

iMacでIPv6ネットワークを設定するにはどうすればいいですか?アプリケーションはIPアドレス(例:199.56.42.21)を使用してサーバーとの接続を初期化します。私はまだIPv6ネットワークを持っていないので、私は set up a local IPv6 Wi-Fi network using your Macから私のiMacを使ってIPv6接続を設定しようとしました。問題は私のiMacがプロキシの背後で(イーサネットを使用して)実行されていることです。外部ネットワークはWi-Fiにあり、設定ガイドでははwifiではありませんです。

+0

これはプログラミングに関する質問ではありません。それはネットワーク構成です。 –

+0

基本的には、あなたのプロジェクトで 'NSULRConnection'をすべて' NSURLSession'に更新していることを確認する必要があります。これはほとんどの場合、喜びを感じる最初のステップです。 – holex

答えて

1

私は、到達可能性 3.xを使用しており、IPV6をサポートしています。

私はIPV6ネットワークで個人的にテストしました。私たちのアプリも、App Storeのレビューをうまく使いました。

あなたが他のネットワークライブラリを使用している場合は、IPv6のサポートをテストするために、リンクの下に使用してください http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/

1

だけで全体をシフトする必要がcloudFlareのような任意のCDNとのあなたのウェブサイトを登録していないし、あなたのアプリケーションは、次回に承認されます他のサーバーに接続してください。これはApp Storeからの承認を得る最も簡単な方法です。

0

IPv6(インターネットプロトコルバージョン6)は、ネットワーク上のコンピュータの識別および位置情報システムを提供し、インターネット上のトラフィックをルーティングする通信プロトコルであるインターネットプロトコル(IP)の最新バージョンです。

インターネット接続されたユーザー、デバイス、およびアプリケーションの数は、IPv4と呼ばれるインターネットプロトコルの元のバージョンの使用可能なアドレスのプールが急速に使い果たされているような急速な成長を続けています。 IPv4は32ビットのアドレスを使用し、インターネットに直接接続された43億のデバイスをサポートできます。 IPv6と呼ばれる置換プロトコルは、128ビットのアドレスを使用し、およそ300兆を提供します。

最近、AppleがIPv6ネットワークをサポートする必要があるため、Appleはアプリケーションを拒否します。私たちの環境では、アプリの同じ状況に直面しており、この問題の解決策の1つが見つかりました。IPv6は既にNSURLSessionとCFNetwork APIによってサポートされているため、ほとんどのアプリは変更を必要としません。アプリがIPv4固有のAPIまたはハードコードされたIPアドレスを使用する場合は、いくつか変更する必要があります。

AppleはIPアドレスリテラルを長期間使用しないことを推奨しています。ドット表記でIPv4アドレスリテラルをgetaddrinfoやSCNetworkReachabilityCreateWithNameなどのAPIに渡さないようにしてください。代わりに、getaddrinfoやgetnameinfoなどの高レベルのネットワークフレームワークやAPIのアドレスに依存しないバージョンを使用し、ホスト名または完全修飾ドメイン名(FQDN)を渡すことができます。 AFNetworking Libraryを使用している場合は、バージョン3.xより前のバージョンに更新してください。更新されたものはほとんどありません。我々は我々のアプリのために上記モジュール内のいくつかの変更を行い、ライブラリに追加する必要があるクラスAFNetworkReachabilityManager

+ (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; 
} 

にAFNetworkingライブラリ内のいくつかの変更を行う必要があります。これをやり終えたら、MACでインターネット共有オプションを有効にして、IPv6のアプリをテストできます。

IPv6のテストDNS64/NAT64互換性 まず、MacがWi-Fi経由でインターネットに接続されていることを確認する必要があります。システム環境設定に移動し、共有オプションを選択し、共有オプションを選択する前にオプションキーを押し続ける必要があることを確認します。インターネット共有を選択し、NAT64ネットワークの作成チェックボックスを選択します。イーサネット、Wi-Fi、Bluetooth PANなどのインターネット接続を提供するネットワークインターフェイスを選択する必要があります。

ここでは、インターネット接続を共有し、Wi-Fiネットワークオプションを設定するためにWi-Fiを選択しています.Wi-Fiを設定したら、インターネット共有オプションを有効にします。

インターネットの共有を選択すると、端末のインターネットアクセスを共有するように促すメッセージが表示されます。

ここでIOSデバイスが共有ネットワークに接続されており、そのネットワーク上でアプリが動作していることを確認できます。

+0

http://stackoverflow.com/q/43028924/285594 - 私はこれをしましたが、まだ拒否しましたか? – YumYumYum

関連する問題