本日の更新は、ipv6ネットワーク接続の問題により2回拒否されました。ネットワーキングコードは、以前のリリースと今回のリリースの間で変更されていません。
アプリは、ipv6 []用に正しく構成され、AWSのroute53の背後で実行されるapi.metooapp.ioに対してのみhttpsネットワーク要求を行います。コードにはハードコードされたIPアドレスはありません。
[ 1 ]でipv6ネットワークを作成する手順を実行した後でも、拒否通知で提供されたリンクであるにもかかわらず、この問題を再現できません。この問題が発生しているのは私だけではないようです[ 2 ]。
かなりのストレスの後、バックエンドがIPv6用に正しく構成されていないという問題であることが確認できました。どうやら、AWSはIPv6も、Route53を介したIPv6のみのDNSもサポートしていません。しばらくの間、インターネットに面したバックエンドのすべてをAWSから遠ざけました。
人々がIPv6のみの制限を超えて更新を送信し始めると、おそらく同様の問題を抱えている他の人がいると思うので、これを残したかったのです。 server/dnsの準備状況をテストするために見つけた最良のツールは、次のとおりです。 http://ready.chair6.net/
IPv6のみのネットワークのサポート および IPv6およびアプリのレビュー リンクは、Apple拒否の問題を判断するのに非常に役立ちます。この特定のケースでは、記事にはDNS64/NAT64テストネットワークをセットアップできるが、「このテストネットワークはApp Reviewで使用されるネットワークとまったく同じではない」と明記されているため、すべてがテスト環境で機能し、アプリが拒否されました。
さらに:
App Reviewネットワークは、サービスプロバイダーが展開するネットワークと同様に、IPv6-to-IPv6接続をサポートしています。したがって、サーバーがIPv6をサポートしている場合、アプリはNAT64トランスレーターを経由せずにIPv6と直接通信します。これは一般的には良いことですが、サーバーがIPv6をサポートしていると主張しているが、そのIPv6サポートが壊れている場合、つまずきます。たとえば、次の場合:DNS名が正しくないが、DNSは正しいが、サーバーがIPv6でリッスンしていないサーバーはIPv6でリッスンしているが、IPv6経由で要求が来ると失敗する
したがって、バックエンドサーバーがIPv6をサポートしている場合、Appleテストネットワークはそれを使用しますが、この場合は間違っていました。
私はこれを参照として追加し、同じ問題が発生する他のユーザーの出発点とします
この同じ問題にぶつかりましたが、実際にはIPv6をサポートしていないため(Route53も使用しているため)、IPv6のAAAAレコードを設定している間に判明しました。 AAAAレコードを削除すると、問題が修正されました。
レーダー テストのドキュメントとApp Reviewが使用しているセットアップの不一致について-CTOがWWDCにあり、ネットワークに接続できたため、診断することができました、これは定期的に再現できる状況ではありません。
同様の状況に遭遇しました。このアプリは、IPv6ネットワークの接続の問題により拒否されました。また、サーバーはAWSを使用しています。
私はIPv6 DNS64/NAT64のテストを問題なく実行しましたが、この拒否に対する申し立てを送信することにしました。
私たちは、私たちの側のテストが成功して終了し、AWSインフラストラクチャを使用していることを説明しました。
さらに2日後、アプリは再びレビューされ、承認されました
私たちのアプリは初めて拒否され、 Apple document に基づいてローカルテスト環境をセットアップし、デフォルトでipv6を有効にせずにcurlライブラリが古すぎることを発見しました。そのため、最新のcurl libをビルドすると動作します。しかし、同じ理由で再び拒否されました。私は多くの情報をチェックし、誰かが同じ経験を持っていることを見つけ、あなたのアプリがテスト環境でうまく機能すると言うAppleレビューアーに苦情を言い、彼らが何らかのエラーがあると主張する場合に支援するエンジニアを提供するように頼みます。 Appleレビューチームは、週末に苦情があったときにアプリを承認しました。
私が知っているように、確認する必要がある2つの問題があります。アプリにIPアドレスをハードコーディングしていますか?サーバードメインのAAAAレコードを設定して、それがipv6をサポートしているが、サーバーがipv6をリッスンしていないことを示していますか。はいの場合、ドメインプロバイダーサイトからドメイン設定のAAAAレコードを削除するだけです。
私たちのアプリは、ipv6の理由でサーバーの使用を拒否されました。ただし、Appleの公式ドキュメントとして構成されたipv6ネットワークでテストされています: https://developer.Apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition .html#// Apple_ref/doc/uid/TP40010220-CH213-SW1
到達可能性ライブラリは、IPv6ネットワーク設定をサポートする必要があります。したがって、このReachabilityクラスを使用してください。
6か月後にこの問題に遭遇したのはこれが2回目です。以前は、AFNetworkingを使用するObjective-Cプロジェクトにあり、このソリューションを使用し、1回で動作しました。アラモファイアでも同じことが起こりました。みんなこのソリューションは私のために2回働いていますが、この質問がGoogleで最初に来ていることがわかったので、答えを投稿しています。
ワークスペースでAF_INETを検索し、見つけた場所でAF_INET6に変更します。使用する場合は、AFNetworkingライブラリまたはAlamofireライブラリ内にある必要があります。 NetworkReachabilityManagerクラスにあります。
以下のソースからこの答えを見つけました。
https://stackoverflow.com/a/38196337/4030971
編集:-6月24日-
これは何度も助けてくれましたが、この問題に対する奇妙な解決策もあります。最近のプロジェクトでは、このソリューションを適用しましたが、Appleはまだアプリケーションを拒否しました。次に、wifi共有オプションからMacで作成されたNAT64ネットワークに接続して、アプリが正常に動作していることを示すビデオを作成しました。私たちはビデオを使ってレビューを要請し、申請を承認しました。したがって、すべてのオプションを完了したら、これも試してください。
Apple documentation で規定されているように、問題なくIPv6
DNS64/NAT64
のテストを実行しました
ただし、問題を再現することはできません(クラッシュ)。クラッシュすることなく、デバイスにアプリをインストールできました。
最後に、アプリストア承認済み私のアプリ
以下のWebサイトでAPIを確認できます。APIiPV6は設定されているかどうかです!
ビデオを送信して問題を解決し、私のアプリがipv6で動作することを示しました。
私のアプリはアプリストアで2回拒否されます。 OS 11.4を搭載したiPhoneでのTwitterログインにエラーが発生します。私たちが抱えている主な問題は、Twitterの開発者アカウントに設定されていないTwitterのコールバックURLです。 Twitterの開発者アカウントにコールバックURLを設定すると。それは私の問題を解決します。ツイッターのデベロッパーアカウントにコールバックURLを設定しないと、デバイスがツイッターアプリを使用しているときにツイッターログインが成功します。ただし、デバイスにTwitterアプリがない場合、禁止エラー403が発生します。
したがって、コールバックURLを設定することで問題が解決し、アプリが受け入れられます。
ありがとうございました
Facebook SDKを使用すると、同じアプリが拒否されました。ログインにFacebook SDKを使用している場合、セッションの終了時にユーザーをログアウトすることは非常に重要です。そうしないと、今後同様のアプリの拒否に直面することになります。同様の問題が発生している可能性がある人を支援するために、以下のコードを含めました。
let loginManager = FBSDKLoginManager()
loginManager.logOut()