はじめに
あなたが作成したアプリを多くのユーザーに利用してもらうにはモバイル・アプリ・ストア (Apple の App Store や Google Play など) を通じてアプリを配布することが最適な方法です。
しかし、App Store にアプリを公開するためには、Apple のレビューを避けて通ることはできません。Apple のレビューは彼らが自ら定め、公開されているガイドラインにもとづき、評価が下されます。
ほとんどの場合において、彼らのレビューは適切に行われていると言えますが、ごく僅かなケースにおいては理不尽な評価が下される場合もあります。アプリに対して理不尽な評価が下されると、それを覆すことは難しく、最悪の場合アプリの公開を断念しなくてはなりません。
この記事では、理不尽なリジェクトを受けたあるアプリが、AppStore へ公開されるまでの経緯を説明しています。
アプリの開発
WWDC 2017 にて iOS11 が発表された際に、私は CoreNFC というフレームワークに注目しました。CoreNFC は iOS で NFC タグを読み込むことを可能にするフレームワークです。
AppStore で様々な開発者が QR コードリーダーをリリースしていることを思い出した私は、早速このフレームワークを使用して汎用的な NFC タグリーダーアプリを完成させました。多くの NFC タグフォーマットをサポートすることができたので、このアプリは多くのユーザーに満足してもらえるのではないかと思えました。
最初の申請
iOS11 向けのアプリの受付が開始された日、私は急いでアプリを申請しました。早朝から iTunes Connect でトラブルが発生していましたが、無事に申請を完了し、あとは iOS11 と同時にリリースされるまで待つだけでした。
私は多くの NFC タグを使用してアプリをテストしていましたし、この時は Apple のレビューも問題なく通過できるだろうと考えていました。
最初のリジェクト
審査から数日後、私の iPhone に通知が来ました。そこにはアプリがレビューによりリジェクトされたと記載されていました。
リジェクト!その事実が信じられなかった私は、急いで iTunes Connect の Resolution Center を確認しました。
Guideline 4.2 - Design - Minimum Functionality
We found that the usefulness of your app is limited by the minimal amount of content or features it includes.
この曖昧で、理不尽なリジェクトがついに私のアプリにも来てしまったのです。
繰り返されるリジェクト
私はまず、リジェクト理由に従い、アプリに機能を追加することにしました。 私のアプリは「NFC タグの読み込み」「読み込みタグの履歴」「読み込み設定の変更」というシンプルな構成になっています。汎用的な NFC タグリーダーを目指していたので、追加すべき機能を検討するのは難航しました。それでも、Web アプリとの連携や、複数の NFC タグの連続読み込み機能などを追加してレビューに再提出しましたが、再び「4.2 Design: Minimum Functionality」でリジェクトされました。
Guideline 4.2 - Design - Minimum Functionality
We found that the usefulness of your app is limited by the minimal amount of content or features it includes.
そんな事をしているうちに、iOS11 が公開され、iOS11 に対応した新しいアプリたちがどんどん AppStore へ公開されていきます。iOS11 との同時リリースが叶わず、これからどのような新機能を追加するべきか頭を悩ませていたところ、ある事実に気づきました。
なんと、AppStore に他の開発者による NFC タグリーダーアプリが公開されていたのです! しかもその数は日付が経つごとに徐々に増えていき、1週間後には10を超えるアプリが並んでいました。
そして、何よりも驚くべきことは、それらのアプリは私のアプリと同等かそれ以下の機能しか備えていなかったということです!
他の競合アプリがリリースされていく中、3回目の「4.2 Design: Minimum Functionality」リジェクトを受けた私は、Resolution Center でレビューの不公平さを訴えました。Apple からの返信はまるで噛み合わないものでしたが、しつこくアピールを繰り返す私に対して、電話でのコンタクトを頂けることになりました。
わずかな希望
数日後、約束通り Apple から国際電話がかかって来ました。こちらが日本人である事を配慮してくれたようで、電話口では日本人の方が対応してくれました。
私はなぜ機能が少ないと判断されたのか尋ねましたが、「レビュワーがそう判断しています」としか回答をもらえません。他のアプリの機能を引き合いに出しても「他のアプリは関係ありません」と私のアピールが受け入れてもらえる余地は全くありませんでした。
しかし、対話を進めるうちに、私のアプリが他のアプリよりも多くの NFC タグに対応している事が、上手くレビュワーに伝わっていないようだと判明しました。また、NFC タグはフィジカルデバイスなので、実際にアプリが読み込んでいるところを動画にしてアップすれば良いのではないかというアドバイスを頂けました。まさに最後の希望でした。
これでレビューを通過する可能性が出てきたと思い、私は急いでアプリの動作、特に NFC タグ読み込み後の動作に関する説明資料と動画を作成しました。
そして4回目の審査に提出して数日後、待ちに待ったレビュー結果は…
Guideline 4.2 - Design - Minimum Functionality
We found that the usefulness of your app is limited by the minimal amount of content or features it includes.
何も変わらず「4.2 Design: Minimum Functionality」によるリジェクトでした。
最後の希望は存在していなかったのです。
燃え上がる復讐心
度重なるリジェクトとその対応に疲れ果てた私は、このアプリをリリースする気持ちもすっかりなくなっていました。
もはやレビューを通すためにはシンプルなアプリをやめて、AR で NFC タグが表示されたり、iMessage で NFC タグのステッカーでも送信できるようにしなければいけないのではないか...そんな事を思いながら憂鬱に過ごしていました。
しかし、ある NFC タグリーダーアプリが AppStore にリリースされたことにより私の気持ちに再び火がつきました。
それがこのアプリです。(モザイクをかけてあります)
画面にはボタンがなく、読み込み履歴には未対応で、設定を変更することもできません。
アプリ起動時にスキャン機能が起動しますが、再びスキャンを行うにはアプリを終了しないといけません。
さらに iPhone 7plus / 8plusでこのアプリを起動すると画面右側に謎の余白があらわれるのです。
肝心の NFC タグスキャン機能も、URLという最もベーシックな形式ですら読み込み後にアプリがクラッシュしてしまいます。
...控えめに言っても「どうしようもないクソアプリ」です。
こんなアプリですらレビューに通過するのに、私のアプリが通過しないというのはやはりレビューがおかしいとしか思えません。私の心は Apple レビューへの復讐心に燃えていました。
万全の体制
再びレビューに挑む事を決意した私は、私のアプリと他の開発者のアプリの機能比較表を作成して、そのリンクを Review Note へと記載しました。私のアプリが AppStore にリリースされている10以上の NFC タグリーダーアプリと同等以上の機能をもち、それらのアプリよりも多くの NFC タグに対応している事を強調しました。
資料やコメントでどんなにアピールしても、おそらく5回目のリジェクトを受けるであろうから、最後は再び電話でのアピールをしようと考えていました。想定問答を用意し、イメージトレーニングに励みました。
5回目のレビュー提出から数日後、アプリは想定通りにリジェクトされました。理由はやはり「4.2 Design: Minimum Functionality」です。私は Resolution Center にいつも通りのアピールを書き、再び電話でコンタクトを頂けることになりました。
唐突な終わり
数日後、前回と同じように Apple から国際電話が着信しました。アピールの方法をイメージトレーニングしていた私は勇んで電話に出たところ、私がアピールする前に Apple の方から意外な言葉が発せられました。
「ガイドラインを満たしていると判断しましたので、アプリのステータスを公開に変更します」
そして電話から数分後、私のアプリは Ready For Sale となり AppStore に並びました。
こうして、私の一ヶ月に近い Apple レビューとの戦いは唐突に、理不尽さを残したまま、終わったのです。
おわりに
今回のレビューから得られる教訓は何でしょうか? 結局、何が問題で、何が解決につながったのか、全く分かりませんでした。
どんなにテストしたアプリにもバグが見つかるように、理不尽なレビューも想定外の産物なのかもしれません。そう考えると、この一ヶ月のAppleとのやりとりは欠陥レビュワーに対するバグフィックスであったとも言えます。
せめて、この記事がどなたかの参考になれば、私の苦労が報われたと言えるのかもしれません。