iOSアプリの審査でIPv6環境でwebviewが真っ白だということでリジェクトされる

過去の作ったアプリのバージョンアップ申請をしました。

今回は過去に制作したアプリの最新OSへの対応ということでバージョンアップ申請をしてみました。
開発環境では正常に動いており、コード部分も問題がなさそうなのでitunesconnectにアップロードしました。

1.IPv6環境にてwebviewが正常に表示されないということでリジェクトされる。

アップルは2016年から審査にIPv6環境での動作チェックも含みますと宣言していたのでIPv6環境で正常に動作するかチェックが行われるようです。

今回、そのIPv6環境での動作に問題があるということでリジェクトされたみたいです。

1.アップルさんの回答

Performance - 2.1

We discovered one or more bugs in your app when reviewed on iPad running iOS 10.2.1 on Wi-Fi connected to an IPv6 network.

Your app displays blank page upon launch.

The steps to reproduce are:

1. Launch the app
2. Blank page is displayed

Please see attached screenshots for details.

Next Steps

Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify any issues, then revise and resubmit your app for review.

If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.

For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.

Resources

For information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and About Networking.

2.IPv6時に動作しないコードやIPv4のIPアドレスなどがないかチェック

IPv6時に動作しないコードやIPv4のIPアドレスなどがないかチェックしました。
コードは問題ないようです。

4.そもそもIPv6とか関係なくないか?

やれることがなくなってしまったので、じっくりと考えてみました。
そもそもIPv6環境だろうがIPv4環境だろうが現在正常に動いているのであれば問題ないのではないか?

IPv6環境からの名前解決は下記の順番

1、IPv6で名前解決
2、あれば終了。なければ3へ
3、IPv4で名前解決
4、Ipv6のローカル用にIpv6に変換してiPadに返す

やはり考えてみるとIPv4環境で名前解決ができていればIpv6環境でも名前解決するはず。

5.それでは何をチェックするべきなのか

1、IPv6環境でも動くソースコードになっているかチェック
2、IPv4環境でアクセスできていて正常動作しているかチェック
3、Appleさんが公開しているIpv6環境で正常に動くかチェック

この3つをチェックして大丈夫であれば、原因はAppleの審査環境でのネットワークの問題ではないだろうか。

Googleで色々調べていると再度審査をお願いすると通ったりするらしい。

つまりDNS64/NAT64 Transitionalが正常に動作していないのだろう。

6.実際にはどのようにして審査を通したか

ソースコードも環境もこちらでは問題ありませんでした。
どうしたらいいのかわかりませんでしたが、そのままの文面でAppleにコメントを返しました。
「推奨されている方法でIPv6環境を構築しチェックをかけたが正常に動作しています。ほかに考えられる問題はありますか?」

すると。。。。

7.Appleさんからの回答

Hello,

Thank you for your response. We will continue the review, and will notify you if there are any further issues.

Best regards,

App Store Review

また問題があれば連絡するよ。とりあえず審査してみるわ風な回答がきました。

8.まとめ

Appleさんから新しくコメントをもらってすぐにPending Developer Releaseになり無事審査を追加しました。

この場合DNSの問題などもあるので色々とやっかいですが、トラブルシューティング自体はそんなに難しくないと思います。

100%審査を通すならIPv6の割り当てられているサーバーでIPv6の名前解決が正常にできる環境がいいでしょう。
Appleの環境に左右されないので。

ただ、サーバー側を管理や選定が自分の会社ではない場合は多いはずです。

その場合は必要なチェックをかけAppleにチェック結果を報告し、いい担当者(いい審査環境?)にあたるのを待つしかないのかもしれません。

Follow me!