質問: 結局具体的にはどうすればいいのか。とるべき方法。 アップルに審査を出しましたが、落ちました。以下のようなメッセージが送られてきました。 2.1 についてはわかりました。 翻訳すると >>IPv6ネットワークに接続されたiOS 10.2.1を実行しているiPhoneでアプリがクラッシュすることがよくあります。 ということはIPv6でアプリがおちるということですね。 MACのネット共有を使用してIPv6にてテストして落ちることはなかったんですが、まぁ落ちたからなんとかせぇや ということですね。 質問したいのは 1. 1.1 です。 これは、内容をくみ取ると 「ユーザー登録機能とか勝手につけるな」 と受け取れるんですが、僕の認識はあっていますか? 1. 1 PERFORMANCE: APP COMPLETENESS 2. 1.1 BUSINESS: PAYMENTS - IN-APP PURCHASE Performance - 2.1 Your app often crashes on iPhone running iOS 10.2.1 connected to an IPv6 network when launched from home screen. We have attached detailed crash logs to help troubleshoot this issue. Next Steps Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure that it runs as expected. Resources For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing Application Crash Reports. For information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and About Networking. Business - 3.1.1 The Data Transfer feature in your app uses a code to provide access to content, which does not comply with the App Store Review Guidelines. Previous issue was not resolved. Next Steps Please remove this feature from your app. It may be appropriate to implement an alternate mechanism for transferring data, such as an optional user registration feature that allows users to restore their purchases or data to all of their iOS devices. We recommend indicating that account registration is necessary to restore previous purchase or data and providing a way for users to register later if they wish to access this content in the future. --- 技術による質問から大変にはずれた質問をしてすいませんでした。 原因をひとつひとつ自力で調べてみようと思います。
回答: ユーザー登録を付ける場合、ユーザー登録が必要な理由の表示と、登録情報を使わないでも良い機能はユーザー登録無しで使えるようにする必要があるということだと思います。 (Optionalとなっているので) データ転送方法については、IPv6で接続している時にクラッシュするから、IPv6への対応が不十分だと書かれています。 現在はIPv6への対応が必須条件になっています。 ◆IPv6への対応について IPv6は、WebKit、Cocoa URL Loading, NSURL, NSURLSession, NSURLRequest, NSURLConnectionなどを使っていれば、特に何もせずに対応してくれるはずです。しかし、BSD系のネットワークAPIを使っている場合は、APIの置き換えなどコード上の対応が必要になります。 下記のページが参考になると思います。 IPv6 DNS64 / NAT64 ネットワークのサポート また、OSSのライブラリを組み込んでいる場合など、外部のライブラリの中には、BSD系のネットワークAPIを使っている場合が有り、IPv6に対応していない場合があると思います。 その場合は、ライブラリをアップデートするか、ライブラリ側にも手を入れる必要があると思います。