本文へスキップ
Unveilydocs

本番チェックリスト

本番公開前のセキュリティチェックリスト

必須チェックリスト

アプリの設定

  • ウェブサーバーの URL → 実際の本番ドメインに設定(HTTPS)
  • google-services.json → 本番用の Firebase プロジェクトファイルに置き換え済み
  • assets/config.json → 本番環境に合った設定を確認済み

ライセンス

  • ダッシュボード → アプリ設定 → パッケージ名の登録が完了している
  • リリースキーストアの署名ハッシュの登録が完了している
  • 本番ライセンスの 有効化 が完了している
  • app/src/release/assets/license.key ファイルを最新ファイルに置き換え済み

セキュリティ設定(assets/config.json

  • スクリーンショット保護の設定を確認(security.screenshotProtectionEnabled
  • バックグラウンド画面保護の設定を確認(security.backgroundProtectionEnabled
  • ルート検出の有効化(security.rootDetectionEnabled: true
assets/config.json(セキュリティセクション)
{
  "security": {
    "screenshotProtectionEnabled": true,
    "backgroundProtectionEnabled": true,
    "rootDetectionEnabled": true
  }
}

金融・医療・決済アプリには screenshotProtectionEnabled: true を推奨します。スクリーンショットと画面録画をブロックします。

アプリの整合性

  • Google Play Console → アプリの整合性 → Play Integrity API の有効化が完了している
  • Google Cloud Console → 該当プロジェクトに Play Integrity API の使用設定が完了している

詳しくは アプリ整合性チェック ドキュメントをご確認ください。

Android の権限(AndroidManifest.xml)

  • 使用する Bridge に必要な権限のみコメント解除済み

機能権限(CAMERARECORD_AUDIOACCESS_FINE/COARSE_LOCATIONUSE_BIOMETRIC など)はマニフェスト内で コメントアウトされた状態で配布 されます。実際に使用する Bridge に対応する権限のみコメントを解除してください。使用しない権限を宣言すると、Google Play のデータ セーフティ(Data Safety)セクションで不要な項目を申告する必要が生じます。INTERNETPOST_NOTIFICATIONSVIBRATE はデフォルトで有効です。

Google Play への配布

  • アプリ署名: Google Play アプリ署名 の使用を推奨
    • 使用する場合: Google の再署名証明書のハッシュで本番ライセンスを再有効化する必要があります
    • Play Console → アプリ → アプリの整合性 → アプリ署名証明書の SHA-256 フィンガープリントで確認
  • AAB 形式でアップロード(APK は避ける)
  • アプリバージョン(versionCodeversionName)を確認済み
# 各 Flavor ごとの AAB ビルド
./gradlew :app:bundleBasicRelease
./gradlew :app:bundleStandardRelease
./gradlew :app:bundleProRelease

ソーシャルログイン(使用する場合)

  • 各ソーシャル SDK の開発者コンソールに本番パッケージ名の登録が完了している
  • social_login_config.json のキーが本番環境用に設定されている
  • Meta を使う場合: build.gradle.kts の manifestPlaceholders を確認済み

iOS(App Store)

Info.plist の使用目的文字列

使用する機能に対応する usage-description キーが Info.plist に含まれているか確認してください。

  • NSCameraUsageDescription(カメラ / QR スキャン)
  • NSFaceIDUsageDescription(生体認証 / Face ID)
  • NSLocationWhenInUseUsageDescription(位置情報)
  • NSMicrophoneUsageDescription(マイク / 音声認識)
  • NSPhotoLibraryUsageDescription / NSPhotoLibraryAddUsageDescription(フォトライブラリ)
  • NSSpeechRecognitionUsageDescription(音声認識)

実際に使用する機能に対応するキーのみを含め、各文字列に使用目的を正直かつ明確に記述してください。使用しない権限の文字列を追加したり、目的が曖昧だと、App Store の審査でリジェクトされる可能性があります。

署名と配布

  • App Store の署名 / プロビジョニングプロファイルの設定が完了している(配布用証明書、App ID)
  • StoreKit 2 のアプリ内商品の構成が完了している — App Store Connect に商品を登録(アプリ内課金を使用する場合)
  • (参考)SDK の xcframework には dSYM が同梱されているため、App Store アップロード時の Validate App でシンボル関連の警告は発生しません — 対応不要

Google Play アプリ署名の注意事項

Google Play アプリ署名を使うと Google がアプリを再署名します。このとき、アップロードしたキーストアの SHA-256 と Google の再署名証明書の SHA-256 が異なります。

本番ライセンスの有効化時は Google の再署名証明書の SHA-256 を使う必要があります。

  1. Play Console → アプリ → アプリの整合性 → アプリ署名証明書セクション
  2. SHA-256 証明書フィンガープリント をコピーする
  3. ダッシュボード → アプリ設定 → アプリ署名ハッシュを更新する
  4. 本番ライセンスを再有効化する

On this page