なにこれ
- アプリ公開申請したらログインサービスのデザイン規約を満たせていないためリジェクトされた
- それに対する修正をいろいろやってたら結果的に2ヶ月くらいかかってしまった
- その時に調べた原因と対応方法をまとめた
リジェクト理由
簡単に振り返ると、「ユーザーがメールアドレスを提供せずにログインできること」が基本的なデザインルールということがリジェクトされた最大のポイントでした。
なお、Apple Store Connect 上で来ていたレビューコメントは以下の通り
The app uses a third-party login service, but does not appear to offer an equivalent login option with the following features:
- The login option limits data collection to the user’s name and email address.
- The login option allows users to keep their email address private as part of setting up their account.
- The login option does not collect interactions with the app for advertising purposes without consent.
要するに以下の要件を満たす必要があるとのこと
- ユーザーの氏名とメールアドレスのみを収集する
- ユーザーがメールアドレスを非公開にすることができる
- ユーザーの同意なしに、アプリ内でのユーザーの行動を広告目的で収集しない
それぞれの指摘に対する解決方法
1. ユーザーの氏名とメールアドレスのみを収集する
こちらは単純に利用規約またはプライバシーポリシーの提示が必要と思われます
実際に自分もリジェクトされた時に「サインアップするときに利用規約提示しているよ」と伝えたらOKになりました
2. ユーザーがメールアドレスを非公開にすることができる
修正に時間がかかってしまった最大のポイント。
最適解としては「Apple ID認証を追加すること」で解決できます。
以下は10回以上レビュー審査を往復した結果、Apple側から「Apple ID認証なら要件満たしてるからいけますよ」と言われたコメントのスクショ。
ちなみにこの部分、一度 Google 認証でトライしてみたのですが、どうやらスコープにメールアドレスが入っているのがダメらしい。
Apple側から直接的な指摘はなかったものの、Google 認証だとユーザーはメールアドレス自体は直接提供してはいないものの、レスポンスにメールアドレスのレスポンスが存在しているためNGな感じがする。
const List<String> scopes = <String>[
'email',
'https://www.googleapis.com/auth/contacts.readonly',
];
GoogleSignIn _googleSignIn = GoogleSignIn(
// Optional clientId
// clientId: 'your-client_id.apps.googleusercontent.com',
scopes: scopes,
);
3. ユーザーの同意なしに、アプリ内でのユーザーの行動を広告目的で収集しない
こちらも前述のように同様、利用規約またはプライバシーポリシーにその内容を記載すればOK
アプリレビューガイド
今回のログインデザインに関する記載は 4.8 に記載されています。
詳しくは以下の URL から確認してみてください。
今回利用したパッケージ
Google認証とApple ID認証を追加実装する際に以下のパッケージを利用しました。
実装の仕方は Readme に書いてあるのでそちらを参考にしてください。
最後に
アプリレビューをかけたのが結局合計で11回くらいになりました。
「ログインデザインに合わない」
「掲載されているポリシー読んだ限りでは実装内容はポリシーと合ってるが?」
みたいなオウム返しのようなやりとりが何度も続き少々ストレスでしたが、ようやく公開にこぎつけられて良かった。
同じような境遇に遭遇している人がいてたまたまこの記事に辿り着いた人がいて、さらにその人にとって解決の糸口になれば嬉しい。