【難関のAppleアプリ審査】
リジェクトのポイントを、実際の経験を踏まえ網羅的に解説

記事イメージ


(最終更新日:

厳しいと評判のAppleのiOSアプリ審査。効率よく通過するためのコツと心構えについて、網羅的に要点を解説します。

私自身何度もこの審査を経て、複数のアプリをApp Storeに公開してきた経験も踏まえて諸々記載していきます。

この記事の目標:これからアプリ審査に臨む方に、引っかかりやすいポイントを知ってもらいたい

尚、審査にもいけず審査待ちから進まないという場合に関しては、別途関連記事を作成しています。

関連記事:【App Store審査】審査待ちのまま数日経過。対応策を実体験から紹介

◇目次

  1. アプリレビュー実務の概要:デベロッパAppもiOSユーザー体験の一部。ゆえに審査も丁寧で厳しい。
  2. あるある審査リジェクト集
  3. 定期継続サブスクリプション周りのリジェクト
  4. 参考までに、筆者の初めてのアプリ審査でのリジェクト事例
  5. レビュープロセスに関する心構え
  6. 結び:慣れてもつらいAppレビュー
  7. 記事筆者へのお問い合わせ、仕事のご依頼

アプリレビュー実務の概要:デベロッパAppもiOSユーザー体験の一部。ゆえに審査も丁寧で厳しい。

App Storeに公開される全てのアプリは、Appleの担当者による審査が行われます。Appleにとって、私たちデベロッパが作成したアプリもiOSのユーザー体験の一部です。よって、AppleがプロデュースするUXの世界にそぐわないアプリは許可されないのです。

具体的な基準は審査ガイドライン(日本語版)に明記されています。アプリ開発に着手する前に、簡単にでもよいので一読しておくべきでしょう。基本的な考え方、禁止事項、UIの制約など、審査の段になって手戻りとならないようにご注意ください。

スマホアプリの二大プラットフォームはApp Storeの他にGoogleのPlay Storeがありますが、その中でもApp Storeは基準・審査共に厳しめです。次のセクションから、具体的なリジェクト要因を見ていきます。

一般公開しないのであれば、TestFlightで簡易審査のみで特定ユーザーへの配布が可能

App Storeは世界中のiOSユーザーにアプリを届ける仕組みです。他方、内輪だけでアプリを公開する方法としてTestFlightという仕組みが用意されています。

簡易的な審査はありますが、こちらの場合は審査ガイドラインを満たさないアプリでもiOSにインストール可能となります。

有効期限がビルドから90日という制限付きですが、外部ユーザーを招待したりダウンロード用URLを発行するなど、テスト用などであれば十分な機能を備えています。用途によってはこちらも検討しましょう。

あるある審査リジェクト集

ログインできない(Guideline 2.1 - Information Needed)

ログインシステムがあるアプリでは頻発するリジェクト要因です。

Apple Store Connectにデモ用アカウントをレビュワーに伝えるフォームがあり、ここにログインできるアカウントを伝えておくことは必須条件です。

厄介なのは、ログインフォームへの行き方がうまく伝わらないケースなど、正確なアカウントを伝えているにもかかわらずリジェクトされてしまうケースが発生する場合です。

アプリのファーストビューからログインできるアプリなら問題ありませんが、一定の操作が必要な場合はログインフォームへの遷移の仕方を慎重に伝えましょう。

iPadだとデザインが崩れる、iPadの時だけ意図せず画面が回転する(Guideline 4.0 - Design)

レビュワーが送ってくるスクリーンショットを見ると、基本的にiPadで審査を行っているようです。

iPadで動く設定にしている場合は、必ずシミュレータなどで確認しましょう。

また、デバイスの回転、特に画面横向きを制限するアプリの場合、iPad向け設定を必ず行いましょう

Project->TARGETS->General->Deployment Info->Device OperatitionでLandscape Left/Rightチェックボックスを外せばOKと思いきや、これだけではiPadの場合には反映されず、info.plistを直接編集する必要があります
Project->TARGETS->General->Deployment Info->Device Operatitionで<strong>Landscape Left/Rightチェックボックスを外せばOKと思いきや、これだけではiPadの場合には反映されず、info.plistを直接編集する必要があります</strong>

下のコードのように、UISupportedInterfaceOrientations~ipadの値を必ず削除しましょう。

尚、この変更を行うと、アップロード用アーカイブ作成時にMultitasking support requiresに関する問題が出る可能性が高いです。

同じくProject->TARGETS->General内にあるRequires full screenにチェックを入れるなどで解決できるので、同時に対処しておきましょう。

info.plist修正前
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

info.plist修正前
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

iPad用のスクリーンショットがiPhoneで撮影されている

メタデータにスクリーンショットを登録する箇所がありますが、iPad用のスクリーンショットにiPhoneで撮影した画像を転用すると、この様に指摘されます。

レビュワーがサインインできないか、アクセスできない機能がある(Guideline 2.1 - Information Needed)

これもあるあるです。App Store Connectにサインイン情報を提供する箇所がありますが、入力したアカウントがちゃんと有効になっているかどうか(ログインできるかどうか)必ず確認しましょう。

また、サインインに限らず、特定機能にアクセスするための入力箇所などがあれば、「App Reviewに関する情報」->「サインイン情報」で情報提供をしないと、メッセージなどは見てもらえないことがあります

レビュワーに隠し事をせず、レビュワーがアクセスできない機能がないように、アプリを設計しましょう。

(尚、私の体験談では、無料期間がために課金機能にアクセスできずリジェクトとなったケースがありました。)

demo、beta、trial、testなどのワードがアプリのUIやメタデータに入っている(Guideline 2.2 - Performance - Beta Testing)

App Storeでは試供版やデモバージョンを陳列することはできません。「そういうのはTestfightでやってね」というリジェクトがきます。

独自アルゴリズムで自動継続サブスクリプションの無料機能を提供するときなど、表現が難しくなります。(この苦労禄はまた改めて書こうと思います。)

Beta Testingによるリジェクト
Beta Testingによるリジェクト

定期継続サブスクリプション周りのリジェクト

サブスクリプション、特に自動継続サブスクリプション形態でのアプリ内課金については審査が厳しめです。

顧客となるユーザーにきちんとサブスクリプションの説明ができているかどうかがポイントとなります。

サブスクリプションのアプリ内課金を搭載しているが、説明がメタデータにない

App Storeのアプリ概要に掲示されるメタデータに課金内容を説明する必要があります。

Apple公式から指示されているテンプレートがあるようです。詳しく解説されている記事が既にありますので、そちらをご参照ください。

参考記事(外部リンク):iOSアプリで自動継続課金をリジェクトされないためのチェックリスト(iPhoneの定期購読サブスクリプション)

また、以下は当社で公開しておりサブスクリプション機能を持つ「おしぼりAI lite」の公開メタデータの一部で課金の内容について説明した箇所です。レビューを受けリライトした結果ですので、参考になるかと思います。

※メタデータ内でのサブスクリプション説明の事例

【サブスクリプション・有料版について】
2022年12月まで本アプリは無料で使用できますが、その後使用される場合、おしぼり数量予測の実行に購入が必要です。
無料期間が終了した後は、ユーザーには5回の無料実行権が付与されます。無料実行権がなくなった場合、サブスクリプションの購入か1回実行権の購入が必要になります。
サブスクリプションは、トップビューの「定期購読」ボタンから購入画面に遷移できます。
サブスクリプションを購入していない場合、実行ごとに1回購入権の購入画面が表示され、購入成功すると推論処理が1回実行されます。

-価格
おしぼり数量測定の無制限実行サブスクリプション:4,900円/月(1ヶ月更新)
おしぼり数量測定の1回実行権限:120円

-機種変更時のサブスクリプション復元
機種変更時には、以前購入した有料版を無料で復元できます。(購入画面->復元から)
購入時と同じAppleIDでiPhone・iPad端末のiTunesにログインして実行してください。

-サブスクリプションの確認と解約
設定アプリ->アカウント->サブスクリプションの画面で、次回の自動更新タイミングの確認や、自動更新の解除/設定ができます。

-自動継続課金について
期間終了日の24時間以上前に自動更新の解除をされない場合、契約期間が自動更新されます。自動更新の課金は、契約期間の終了後24時間以内に行われます。

-注意点
上記以外の方法での解約はできません。
当月分のキャンセルについては受け付けておりません。
AppleIDアカウントを経由して課金されます。

-ご利用規約
https://www.sakai-sc.co.jp/products/oshibori-ai/oshibori-ai-lite/terms.html

引用:おしぼりAI lite(App Storeプレビュー)

自動継続サブスクリプションの対象サービス内容は適正か?

自動継続サブスクリプションの内容は「継続的に更新があるユーザー体験」に適用すると明記されています。

固定のサービスは非消耗型とか非自動継続サブスクリプションで提供する必要があります。

尚、一昔前はサーバーを使用したサービス以外はほぼNGでしたが、現在は条件が緩和されています。

購入画面にサービス利用規約、プライバシーポリシーへのリンク、課金内容の説明がない(Guideline 3.1.2 - Business - Payments - Subscriptions)

アプリ内課金の購入画面がある場合、サービス利用規約、プライバシーポリシーへのリンクが必要です。

サービス利用規約については、Apple標準EULAを使用している場合でも、サービス専用の規約を用意する必要がありそうです。

Apple Store Connect 問題解決センターより引用
Apple Store Connect 問題解決センターより引用

また、課金内容についてはその画面内かそこに含まれるリンク内で詳細に説明する必要がありますので注意しましょう。

参考までに、当社開発の「おしぼりAI」アプリ内で課金画面に設置している説明書きです。メタデータのアプリ概要に記載する内容とほぼ同じでOKですが、料金など具体的に記載してしまうと価格改定時に変更を忘れたりするので注意しましょう。
参考までに、当社開発の「おしぼりAI」アプリ内で課金画面に設置している説明書きです

(ちなみに)サブスクリプション等、課金機能を持つアプリの公開には、EINの取得が必要です。

機能課金の搭載の際は、アメリカと日本での二重課税を回避するためにEIN(Employer Identification Number/米国納税者番号)の取得が必要です。もし取得がまだという方は、アプリの公開スケジュールから逆算して早めの手続きをオススメします。

取得方法について関連記事を作成していますので、是非ご参考ください。

関連記事:【EIN取得】手段の選択肢とメリット・デメリットを実録とあわせて紹介

参考までに、筆者の初めてのアプリ審査でのリジェクト事例

実際自分が審査初心者だった時、どういうリジェクトをもらったのか、メールを見返してみました。(最初のアプリ、Quick-txtでの実録です。)

その内容は、メタデータ(アプリの説明などの文書)に「iOS」という無関係なワードが入っているのでNG、というもの。

こういった細かい表現やポリシーへの適合がアプリ内やメタデータの表示に求められます。さすがはApple社といったところでしょうか。

「iOS」というワードは無関係とのこと。(引用:Apple Store Connect 問題解決センター)
「iOS」というワードは無関係とのこと

レビュープロセスに関する心構え

レビュワーとのやり取りは英語で書いた方がいいの?という疑問

レビューは恐らくアメリカで行われており、日本語ネイティブのレビュワーはほぼいないと考えたほうが良いです。

日本語で書いても翻訳して理解してくれますが、誤解や細かい表現が伝わらない可能性もありますので、できればGoogle翻訳などを駆使して英語で返答しましょう。

「審査待ち」が長い、「審査中」のまま進まないという事象

Appleの公表によると、申請を出してから24時間以内に審査が終わるものが50%、48時間以内に90%が終わるとのことです。気長に待ちましょう。特に「審査待ち」→「審査中」への移行は申請から24時間以内というルールが存在しているそうです。

「審査待ち」が長いケースに関して、私の場合5日くらいたっても「審査中」にならないということが1度だけありました。並行で同じタイミングで出した別のアプリはとっくに審査が終わっているので妙だと思い、この時は仕方なく一度取り下げて再度審査申請しました。その結果、すぐに審査中に切り替わりましたので、認識エラーなどでしょうか。ご参考になれば幸いです。

「審査中」が長いケースは、他のアプリ(類似のものがないかなど)を検査していたり上司に確認するなど、特殊なケースが発生していることも考えられます。こちらも仕方ないので、気長に待つしかありません。レビューが長いと対応依頼を出しても事態が好転することは少ないようです。

この点に関して関連記事を作成しています。よろしければ併せてご参考ください。

関連記事:【App Store審査】審査待ちのまま数日経過。対応策を実体験から紹介

審査の過程は、血が通った人と人とのやりとり。レビュワーとのコミュニケーションは丁寧かつ誠実に対応しよう。

レビュワーは、基本的なやり取り内では名前も顔もわからないのですが、向こう側には確かに人がいて手打ちでメッセージを送ってきます。

理不尽なリジェクトなどで腹が据えかねることもあるかもしれませんが、そこは一旦落ち着いて、粘り強く、紳士的に対応しましょう。レビュワーとバトルしても基本的に良いことはないです。

ちなみに自分がレビューに対するメッセージを送るときは、どんな内容であっても "Thank you so match for reviewing my app!" とか "Best Regard," とかつけています。

いずれにしても相手は自分の大事なビジネスパートナーだという認識の下にやり取りを行うようにした方が何かとスムーズではないかなと思います。

アプリに問題があっても必ず指摘されるわけではないが、後から問題が発見され公開停止とされる場合がある

審査内容は、担当者によって見てくるポイントが異なっています。バージョンアップデートの審査で、変更していない箇所の指摘が来ることがそれなりにあります。要は、審査担当者の見落としが発生することがあるということです。

私は経験がないのですが、公開中のアプリについての問題が発見された場合、Appleにより公開停止措置とされる場合があります。安全のため、目先の審査通過だけを目的とせず、きちんとガイドラインに準拠したアプリ作りを心掛けるべきでしょう。

結び:慣れてもつらいAppレビュー

ポイントがありすぎて、毎回何でリジェクトをもらうかいまだに予想つきません。

今回も色々書きましたが、Appレビューに立ち向かうとまた別の壁にいろいろぶち当たると思います。

是非その時は粘り強く冷静に対応して、アプリ公開まで漕ぎつけられることをお祈りしております。

記事筆者へのお問い合わせ、仕事のご依頼

当社では、IT活用をはじめ、業務効率化やM&A、管理会計など幅広い分野でコンサルティング事業・IT開発事業を行っております。

この記事をご覧になり、もし相談してみたい点などがあれば、ぜひ問い合わせフォームまでご連絡ください。

皆様のご投稿をお待ちしております。

記事筆者へ問い合わせする

※ご相談は無料でお受けいたします。
IT活用経営を実現する - 堺財経電算合同会社