本文へスキップ
審査対応

App Storeのガイドライン2.1(App Completeness)リジェクト:再提出前にやるリリースビルドのテスト計画(2026年)

App Storeでガイドライン2.1(App Completeness)のリジェクトを受けたら、App Reviewに届くビルドそのものをテストしましょう。新規インストール、使えるデモアカウント、稼働中のバックエンド、見つけられるアプリ内課金、プレースホルダーなしが条件です。

結論

App Storeのガイドライン2.1(App Completeness)によるリジェクトは、App Reviewがユーザーと同じようにアプリを使えなかったことを意味します。クラッシュした、プレースホルダーのコンテンツが表示された、ログインで先に進めなかった、あるいはアプリ内課金が見つからなかった(2.1(b))といったケースです。解決するには、提出するTestFlightビルドそのものをクリーンな端末にインストールします。次に、Appleに伝えたデモ用の認証情報でサインインし、本番バックエンドが稼働していることを確認し、すべてのアプリ内課金を見つけられるか確かめます。そのうえで、修正内容を審査メモに書いてから再提出しましょう。

要点
  • Appleによると、App Reviewで未解決となる問題の40%以上がガイドライン2.1に関連しています。この項目はクラッシュ、プレースホルダーのコンテンツ、不完全な情報などを対象としています。
  • ガイドライン2.1(a)は、ログイン機能のあるアプリにデモアカウントの情報と稼働中のバックエンドを求めています。アプリ内蔵のデモモードは、Appleの事前承認がある場合に限って認められます。
  • ガイドライン2.1(b)は、アプリ内課金が審査担当者から見えて、正しく機能することを求めています。アプリ内で見つけられない課金アイテムがある場合は、その理由を審査メモで説明してください。
  • 提出するのと同じビルド番号をテストしましょう。クリーンな端末にTestFlightからインストールします。TestFlightのビルドは最長90日間テストできます。
  • Appleは却下された提出1件につき1回の不服申し立てを認めていますが、2.1のリジェクトの多くは、新規インストールで問題を再現して直すほうが早く解決します。
完成したアプリを提出しよう

App Storeのガイドライン2.1(App Completeness)によるリジェクトは、審査担当者がユーザーと同じようにアプリを使えなかったことを意味します。クラッシュした、プレースホルダーのコンテンツが表示された、ログイン画面で先に進めなかった、あるいはアプリ内課金が見つからなかった、といった原因が考えられます。修正がコード1行で済むことはまずありません。再提出の前に、新規インストールの状態で、App Reviewに渡すのと同じ認証情報を使い、リリースビルドで短いテスト計画を実行しましょう。この記事ではそのテスト計画を順に解説し、他の開発者が同じリジェクトをどう解決したかも紹介します。

App Storeのガイドライン2.1(App Completeness)では何がチェックされるのか?

ガイドライン2.1では、提出したビルドが完成済みで正しく動作するアプリかどうかがチェックされます。完全なメタデータ、機能するリンク、デモ用ログイン、稼働中のバックエンド、そして審査担当者が見つけて使えるアプリ内課金が必要です。

AppleのApp Reviewガイドラインでは、2.1は2つに分かれています。2.1(a)では、提出物は「必要なメタデータをすべて含み、URLが完全に機能する最終版であるべき」とされ、プレースホルダーのテキストや中身のないWebサイトは削除するよう求めています。また、バグや安定性について実機でテストすること、そして「アプリにログイン機能がある場合はデモアカウントの情報を含める(そしてバックエンドサービスをオンにしておく!)」ことも求めています。Appleは「不完全なアプリバンドルや、クラッシュする、または明らかな技術的問題があるバイナリはリジェクトする」としています。2.1(b)では、アプリ内課金は「完全で最新の状態であり、審査担当者から見えて、機能する」ものでなければならないとしています。設定済みの課金アイテムがアプリ内で見つからない場合は、その理由を審査メモで説明してください。

このリジェクトはよくあるものです。AppleのApp Reviewの準備(Preparing for App Review)ページには、「平均して、未解決の問題の40%以上がガイドライン2.1:App Completenessに関連しており、これにはクラッシュ、プレースホルダーのコンテンツ、不完全な情報などが含まれます」と書かれています。

なぜデバッグビルドのテストでは2.1の問題を見つけられないのか?

デバッグビルドは、審査担当者の手元にあるアプリと同じようには動きません。審査担当者は、配布用に署名されたリリースビルドを、保存されたセッションもデバッグ用の近道もないクリーンな端末にインストールします。

あなたのシミュレータはすでにサインイン済みです。ローカルのAPIは、絶対に落ちないステージングサーバーを向いているかもしれません。デバッグフラグでペイウォールがスキップされ、機能フラグはデフォルトでオンになっています。審査担当者の環境にはどれもありません。さらにAppleの審査ページは「最新のソフトウェアを搭載した端末で徹底的にテストする」よう求めているため、審査担当者はあなたのテスト端末より新しいiOSを使っている可能性があります。

審査担当者の環境に最も近づけるのがTestFlightです。TestFlightの概要によると、App Store Connectのチームから最大100人の内部テスターを、さらに最大10,000人の外部テスターを追加できます。1つのビルドは最長90日間テストできます。提出予定のビルドそのものをアップロードし、そのアプリを一度も実行したことのない端末にTestFlightからインストールして、そのコピーをテストしましょう。

再提出前のリリースビルドのテスト計画では何を確認すべきか?

リリースビルドのテスト計画では、初めて触る審査担当者が行き詰まりうるポイントをすべて確認します。起動、権限、ログイン、バックエンド、コンテンツ、リンク、課金、ネットワーク障害、そしてiPadです。TestFlightビルドで以下の手順を順番に実行し、各結果を記録しておけば、審査メモでそのまま引用できます。

  1. 最新iOSでのクリーンインストール。 以前のコピーをすべて削除し、TestFlightからインストールして、何も保存されていない状態で起動します。コールドスタートを3回行い、オンボーディングでクラッシュしないことを確認します。
  2. すべての権限リクエストを一度は拒否する。 通知、位置情報、カメラ、トラッキングを拒否します。それでもアプリは使える画面までたどり着けるべきです。また、アプリやそのSDKが使う保護されたリソースすべてについて、Info.plistに使用目的の説明があることも確認します。
  3. デモ用の認証情報そのものでサインインする。 パスワードマネージャーからではなく、App Store Connectからコピーしてください。アカウントには現実的なデータが入っていて、メール確認が不要で、あなた自身のスマートフォンに紐づいた2ファクタ認証を使っていないことが条件です。
  4. バックエンドが本番環境で稼働していることを確認する。 ビルドは本番のエンドポイントを向いている必要があります。レート制限、IP許可リスト、地域ブロックで審査担当者が締め出されないようにします。ガイドライン2.1(a)は、バックエンドサービスをオンにしておくよう求めています。
  5. すべてのタブと画面を確認する。 lorem ipsum、「近日公開」の画面、説明のない空の状態、テスト用の画像、押しても何も起きないボタンがないか探します。
  6. すべてのリンクをタップする。 プライバシーポリシー、サポート、利用規約、あらゆるWebビューが対象です。Appleは「最新の連絡先情報を記載したユーザーサポートへのリンクと、プライバシーポリシーへのリンクは、すべてのアプリで必須」としています。
  7. すべてのアプリ内課金を開く。 新規アカウントでサインインします。そのバージョンと一緒に提出した各プロダクトが価格付きで表示されること、サンドボックスで購入できること、「購入を復元」が機能することを確認します。
  8. 低速または切断されたネットワークでテストする。 操作の途中で機内モードをオンにします。わかりやすいエラーメッセージなら問題ありません。止まらないスピナーやクラッシュはNGです。
  9. 対応している場合はiPadも確認する。 アプリがiPadで動作するなら、iPadで起動し、レイアウトのせいでユーザーが操作不能にならないことを確認します。

手順3のデモアカウントは、他のどの手順よりも繰り返しのリジェクトを招きます。長く使えるデモアカウントの作り方は、App Store審査用デモアカウントの設定ガイドで解説しています。

2.1のリジェクトメッセージから修正方法をどう導くか?

2.1のリジェクトから修正方法を導くには、ガイドライン番号の次の文を読みます。そこに症状が書かれており、症状ごとにテスト計画の該当する手順が決まります。

たとえば、習慣トラッカーアプリが「起動時にクラッシュしたため、アプリを審査できませんでした」というメッセージでリジェクトされたとします。2つ目のメモには、審査担当者がアプリ内課金を見つけられなかったと書かれています。下の表は、よくある症状を原因、テスト、修正方法に対応させたものです。

審査担当者の指摘考えられる原因実行するテスト修正方法
起動時にクラッシュしたサインイン済みのユーザーやキャッシュデータを前提にしたコード、または使用目的の説明の欠落手順1と2:クリーンインストール、コールドスタート、添付のクラッシュログを読むセッションがnilの場合をガードする。不足しているInfo.plistのキーを追加する
サインインできなかったデモアカウントの期限切れ、メール確認や2FAが必要手順3:コピーした認証情報でログインする長期間使える、確認済みのメールアドレスとパスワードの審査用アカウントを作成する
アプリ内課金が見つからなかったペイウォールが3日目以降にしか表示されない、またはペイウォールにプロダクトがない手順7:新規アカウントからすべてのプロダクトを探す提出したすべてのプロダクトを表示する、またはメモで手順を説明する
プレースホルダーのコンテンツ設定画面に「TODO」が残っている手順5:すべての画面を確認するその画面を削除するか完成させる
ネットワークエラーリリース構成にステージングURLが残っている手順4:リリースビルドのエンドポイントを確認するビルド構成を修正して再アップロードする

あらゆるリジェクトメッセージを読み解くための幅広い方法は、App Storeリジェクトの直し方:ガイドライン別解説をご覧ください。

他の開発者の2.1リジェクトはどのようなものだったか?

公開されている2.1の事例には共通のパターンがあります。開発者の環境では動作するのに、新規インストールや他人のログインでしか表面化しない何かが原因で、審査担当者の環境では失敗するのです。

  • 使用目的の説明の欠落によるクラッシュ。 Solar2Dフォーラムでは、ある開発者が、TestFlightでは動作していたにもかかわらず、iOS 18.3.2を搭載したiPhone 13 miniで「起動時にクラッシュしたため、アプリを審査できませんでした」と通知されました。別のメンバーが、添付のクラッシュログに「このアプリは、使用目的の説明なしにプライバシーに関わるデータにアクセスしようとしたためクラッシュしました」という記述を見つけました。開発者は「NSUserTrackingUsageDescriptionを追加したら通った」と報告しています。
  • 審査担当者が使えなかったソーシャルログイン。 Apple Developer Forumsでは、ある開発者が、審査担当者が「ソーシャルログインを使用できなかった」という理由で2.1のリジェクトを繰り返し受けたと報告しました。AppleとGoogleのデモアカウントを提供していましたが、Apple IDのサインインには開発者のスマートフォンに送られる確認コードが必要でした。Appleのスタッフは、App Reviewから直接連絡すると回答しました。解決方法は公開されていません。
  • アプリ内課金が「提出されたバイナリ内で見つからなかった」。 RevenueCatのコミュニティスレッドでは、サンドボックスでの購入は機能していたのに、月額プランがバイナリ内で見つからないとしてリジェクトされた開発者がいました。回答者の一人は、ペイウォールへのすべての経路を詳しく説明し、スクリーンショットを添えて返信したところ、同様のリジェクトが解決したと述べています。RevenueCatのスタッフは、提出したすべてのプロダクトをデフォルトのペイウォールに表示し、StoreKitのテストファイルをArchiveスキームに含めないよう助言しました。

3つの事例すべてで、開発者自身のテストは通っていました。失敗が表面化したのは、2FA用のスマートフォンも過去のセッションもなく、ペイウォールの場所も知らない、審査担当者の出発点からだけでした。上のテスト計画は、まさにその出発点を再現するものです。

2.1のリジェクト後、App Reviewの審査メモには何を書くべきか?

2.1のリジェクト後の審査メモには、動作するデモ用の認証情報、リジェクトされたビルドからの変更点、そしてアプリ内課金やわかりにくい機能の具体的な場所を書きます。

Appleの審査ページは、アカウントの詳細や特別な設定はApp Reviewに関する情報(App Review Information)セクションに記載するよう求めています。準備が難しいハードウェアや環境が必要な機能については、「デモ動画またはハードウェアを提供できるよう準備しておく」ことも求めています。ガイドライン2.3.1(a)はさらに、新機能は審査メモで「具体的に」説明しなければならず、「一般的な説明はリジェクトされる」としています。短く構造化されたメモが効果的です。

Demo account: review@example.com / (password)
Account is pre-verified, has no 2FA and has 30 days of sample data.

Fixes since last submission (2.1):
- Launch crash on fresh install fixed (tested build 42 on latest iOS, clean device).
- In-app purchases: Settings > Upgrade shows Monthly and Yearly.
- Backend is production and will stay live during review.

Non-obvious features:
- Widgets: long-press Home Screen > add "Streaks" widget.

法的またはセキュリティ上の義務によりデモアカウントを用意できない場合、ガイドライン2.1(a)はアプリ内蔵のデモモードを認めていますが、それはAppleの事前承認がある場合に限られ、そのモードではアプリのすべての機能を示す必要があります。承認なしにデモモードへ切り替えないでください。

2.1のリジェクト後、どう再提出または不服申し立てをするか?

2.1のリジェクト後に再提出するには、テストしたビルドをアップロードまたは選択し、App Store ConnectでApp Reviewに変更点を返信し、審査メモを更新してから再度提出します。不服申し立ては、審査担当者がアプリを誤解したと考える場合にだけ行いましょう。

  1. App Store Connectでバージョンに紐づいているビルド番号が、テストしたTestFlightビルドと一致していることを確認します。
  2. リジェクトのメッセージに、各修正の短い要約を添えて返信します。課金やナビゲーションの問題であれば、手順とスクリーンショットも添えます。
  3. App Reviewに関する情報(App Review Information)セクションを、最新の認証情報とメモで更新します。
  4. 審査に提出します。2026年10月時点で、Appleは通常「提出の少なくとも50%を24時間以内に、90%を48時間以内に」審査するとしています。

Appleの判断が誤っていると考える場合は、App ReviewページからApp Review Boardに不服申し立てができます。アプリが準拠している具体的な理由を示してください。また「審査に通らなかった提出1件につき、不服申し立ては1回だけ」とされています。ただし2.1のリジェクトでは、反論するよりクリーンな端末で問題を再現するほうがたいてい早く片づきます。再提出を任せたい場合、The App GuyのApp Store提出サービスは、両ストアの審査準備とリジェクトへの対応を$599で提供しています(デベロッパーアカウントの費用は別途)。

2.1の問題は、新しい機能フラグ、ローテーションしたAPIキー、期限切れのデモアカウントなど、後のアップデートで再発しがちです。このテスト計画を、App Store提出チェックリストと合わせてリリースの定型作業に組み込みましょう。アップデートでは、段階的リリースを使えば、見落としたバグが届くユーザー数を抑えられます。リジェクトされたビルドについてセカンドオピニオンが欲しい場合は、リジェクトのメッセージを添えてyagyeshsrbobde@gmail.comまでメールしてください。

よくある質問

ガイドライン2.1のリジェクトを直すには新しいビルドが必要ですか?

必ずしも必要ではありません。審査担当者がサインインできなかった、またはアプリ内課金が見つからなかったという場合は、デモアカウントを更新したり、審査メモに課金画面までの手順を追記したりしたうえでApp Store Connectで返信すれば解決することがよくあります。一方、クラッシュ、プレースホルダーのコンテンツ、リリース構成に残ったステージングURLは新しいビルドが必要です。TestFlightにアップロードし、提出前にクリーンな端末で再テストしてください。

自分のiPhoneでは動くのに、App Reviewではクラッシュするのはなぜですか?

審査担当者は、保存されたセッションもキャッシュデータもデバッグフラグもない状態でアプリを新規インストールします。端末やiOSのバージョンもあなたのものとは異なることが多いです。よくある原因の一つが、Info.plistの使用目的の説明(usage description)の欠落です。説明がないままプライバシーに関わるデータにアクセスすると、iOSはアプリを強制終了します。Appleが添付するクラッシュログを読み、そのアプリを一度も実行したことのない端末にTestFlightビルドをインストールしてクラッシュを再現しましょう。

App ReviewはデモアカウントでSign in with AppleやGoogleログインを使えますか?

おすすめできません。2ファクタ認証で保護されたApple IDやGoogleアカウントは確認コードがあなたのスマートフォンに送られるため、審査担当者が先に進めなくなります。App Reviewには、確認済みで現実的なデータが入った、メールアドレスとパスワードでログインするアカウントを渡しましょう。アプリがソーシャルログインにしか対応していない場合は、審査メモでその旨を説明し、提出前にApp Reviewに問い合わせてください。

2.1の修正を再提出した後、審査にはどれくらいかかりますか?

2026年10月時点で、Appleは通常、提出の少なくとも50%を24時間以内に、90%を48時間以内に審査するとしています。再提出も同じキューで処理されます。またAppleは、不完全な提出は審査の遅延や不合格につながると注意を促しています。デモ用の認証情報を漏れなく揃え、わかりやすいメモを添えれば、再提出が1回で通りやすくなります。

「アプリ内課金が見つからない(cannot locate the in-app purchases)」とはどういう意味ですか?

App Store Connectで設定したプロダクトを、審査担当者が提出されたバイナリ内で見つけられなかったという意味です。ペイウォールにそのプロダクトが表示されていない、プロダクトIDが一致していない、あるいは購入までにたどり着くのに審査担当者が知らない手順が必要だった、のいずれかです。提出したすべてのプロダクトを、新規アカウントでもたどり着けるペイウォールに表示しましょう。それが難しい場合は、手順とスクリーンショットを添えて返信するか、まだ提供していないプロダクトを外してください。

出典と参考資料

ポリシーは変わります。申請前に公式ドキュメントをご確認ください。

ビルドでも、アイデアでも。

アプリをゴールまで届けましょう。

アプリの公開を阻んでいるものを洗い出す、集中型の通話です。

通話を予約 ↗