6月1日以降、ionicアプリをiTunes Connectに送信し、Appleからメッセージを受け取りました。
アプリはIPv6ネットワークでレビューされます。 アプリがIPv6ネットワークをサポートしていることを確認してください、IPv6互換性が必要です。
IPv6ネットワークのサポートについては、iPv6 DNS64/NAT64ネットワークのサポートを参照してください。
ネットワークの概要については、ネットワークについてを参照してください。
API呼び出しにAFNetworkingを使用しました。
同じための解決策を見つけるのを助けてください。
ありがとう。
実際、AFNetworking Libraryを使用してAPIを呼び出しています。
GithubのAFNetworkReachabilityManagerクラスを既存のクラスに置き換えるだけです。そしてAppleはもう問題はありません。
そして、私のアプリは現在動作しています。
IPv4固有のAPIまたはハードコードされたIPアドレスを使用している場合は、コードを更新する必要がありますが、NSURLSessionおよびCFNetwork API(NSURLConnectionを含む)はすべてIPV6
Appleが述べたように:
WWDC 2015で、iOS 9でのIPv6のみのネットワークサービスへの移行を発表しました。2016年6月1日から、App Storeに提出するすべてのアプリはIPv6のみのネットワークをサポートする必要があります。 NSURLSessionおよびCFNetwork APIでIPv6が既にサポートされているため、ほとんどのアプリは変更を必要としません。
アプリでIPv4固有のAPIまたはハードコードされたIPアドレスを使用している場合、いくつかの変更を行う必要があります。
でも。 Appleまた、IPアドレスリテラルを長期間使用しないことをお勧めします(不要)
IPアドレスリテラルを使用しない
GetaddrinfoやSCNetworkReachabilityCreateWithNameなどのAPIにドット表記のIPv4アドレスリテラルを渡さないようにしてください。代わりに、高レベルのネットワークフレームワークとgetaddrinfoやgetnameinfoなどのAPIのアドレスに依存しないバージョンを使用し、それらにホスト名または完全修飾ドメイン名(FQDN)を渡します。 getaddrinfo(3)Mac OS X開発者ツールマニュアルページおよびgetnameinfo(3)Mac OS X開発者ツールマニュアルページを参照してください。
注:iOS 9およびOS X 10.11以降では、NSURLSessionおよびCFNetworkは、DNS64/NAT64ネットワークで動作するデバイス上でローカルにIPv4リテラルからIPv6アドレスを自動的に合成します。ただし、IPアドレスリテラルのコードを取り除く作業は引き続き行う必要があります。
AFNetworking Libraryを使用している場合は、3.xより上のバージョンに更新してください。更新されたものはほとんどないようです。-> AFNetworking ReachabilityにIPv6のサポートが追加されました。
詳細情報については、このリンクに従ってください
また、テストする
この詳細なチュートリアルに従うことができます。
Apple IPv6ネットワークによるアプリの拒否)の解決策
IPv6のインターネット到達可能性チェックはうまく機能していません。常にネットワークがないことを示しています。このコードを使用すると、Appleは24時間以内にアプリを承認しました。THANKS
AFNetworkingのコードの次の行を変更します-クラスのライブラリAFNetworkReachabilityManager
AF_INETを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;
}
編集:
$ grep -nr 'AF_INET*' .
./Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m:122: address.sin_family = AF_INET;
replace
AF_INET; to AF_INET6;
IPv6ネットワークではURLにドット表記を使用できないため、API URLからドット表記を削除してください。 API URLとその作業から削除しました。