Info.plist 審査チェックリスト完全版
Info.plistはiOSアプリの設定ファイルです。権限の使用説明文(NSUsageDescription)が不備だったり、 App Storeで使用する機能の申告が漏れていると審査でリジェクトされます。 このガイドでよくある落とし穴をすべて確認しましょう。
権限説明文(NSUsageDescription)一覧
アプリが使用する権限ごとに、ユーザーに表示される説明文をInfo.plistに記載する必要があります。 説明文が空・曖昧・実態と異なる場合はリジェクトされます。
NSCameraUsageDescription記載例:
「写真や動画を撮影してプロフィール画像や投稿に使用するため」
NSPhotoLibraryUsageDescription記載例:
「プロフィール画像を写真ライブラリから選択するため」
NSPhotoLibraryAddUsageDescription記載例:
「撮影した写真をカメラロールに保存するため」
NSMicrophoneUsageDescription記載例:
「動画撮影時に音声を録音するため」
NSLocationWhenInUseUsageDescription記載例:
「近くの店舗を検索し、現在地周辺の情報を表示するため」
NSLocationAlwaysAndWhenInUseUsageDescription記載例:
「移動経路を記録し、運動量を自動でトラッキングするため」
NSContactsUsageDescription記載例:
「友人を招待するために連絡先から検索できるようにするため」
NSCalendarsUsageDescription記載例:
「予定をカレンダーに追加し、リマインダーを設定するため」
NSFaceIDUsageDescription記載例:
「アプリへのログインをFace IDで素早く行うため」
NSHealthShareUsageDescription記載例:
「歩数・心拍数データを読み取り、健康レポートを作成するため」
NSHealthUpdateUsageDescription記載例:
「トレーニング記録をヘルスケアアプリに保存するため」
NSBluetoothAlwaysUsageDescription記載例:
「Bluetooth対応デバイスと接続してデータを同期するため」
NSUserTrackingUsageDescription記載例:
「あなたの興味に合った広告を表示し、無関係な広告を減らすため」
審査でよく見られるその他の項目
CFBundleVersion / CFBundleShortVersionString
バージョン番号(CFBundleVersion)は毎回の提出で前回より大きい値を設定する必要があります。同じバージョン番号での再提出は処理されません。
URLスキーム(CFBundleURLTypes)
カスタムURLスキームを設定している場合、そのスキームがユニークであることを確認してください。他の一般的なスキーム名(「fb」「twitter」など)と重複するとリジェクトされます。
Google Sign-InやFacebook SDKなどの外部認証を使用する場合、SDKが要求するURLスキームの追加を忘れずに。
LSApplicationQueriesSchemes
canOpenURL()で確認するURLスキームを宣言します。宣言なしに使用するとiOS 9以降では常に「開けない」が返されます。また、宣言できるスキームは50個まで制限されています。
UIBackgroundModes
バックグラウンド処理を行う場合に設定します。宣言した機能を実際に使用していない場合、または宣言なしにバックグラウンド機能を使用している場合はリジェクトされます。
- audio:バックグラウンド音声再生
- location:バックグラウンド位置情報
- fetch:バックグラウンドフェッチ
- remote-notification:プッシュ通知
NSAppTransportSecurity
HTTPSではなくHTTP通信を許可する設定です。NSAllowsArbitraryLoads: trueは原則禁止されており、正当な理由なく設定するとリジェクトされます。 特定ドメインのみをNSExceptionDomainsで許可する方法を使用してください。
提出前チェックリスト
使用する権限すべてにNSUsageDescriptionが設定されている
権限説明文が具体的で、ユーザーが理解できる内容になっている
バージョン番号が前回より大きい値になっている
バックグラウンドモードを宣言した機能を実際に使用している
NSAllowsArbitraryLoadsがfalse(またはキーが存在しない)
カスタムURLスキームが他のアプリと重複していない
Privacy Manifestファイル(PrivacyInfo.xcprivacy)が含まれている
サードパーティSDKのPrivacy Manifestが統合されている