本文へスキップ
Unveilydocs

審査通過のためのヒント

Google Play と App Store の審査を通過するためのヒント

なぜこのガイドが必要ですか?

Unveily SDK は WebView ベースのハイブリッドアプリソリューションです。Google Play と Apple App Store は、審査時と異なる動作をするアプリを厳しく審査します。

良いニュースは、Unveily SDK の構造がすでに審査に有利に設計されていることです。


Unveily SDK が審査に安全な理由

ネイティブ機能はビルド時に固定されます

項目動的変更可能?説明
Bridge 関数リスト不可ネイティブコードにハードコード、アプリ更新なしに追加不可
config.json モジュール ON/OFF不可ビルド時に assets に含まれ固定
アプリ権限(カメラ、位置情報等)不可AndroidManifest.xml にビルド時に固定
ウェブコンテンツ(HTML/CSS/JS)可能サーバーから変更可能ですが、ネイティブ機能の範囲内でのみ動作します

ウェブコンテンツが変更されても、呼び出せるネイティブ機能の範囲はビルド時に決定されるため、新しいネイティブ機能が動的に追加されることはできません。


審査提出時の推奨事項

1. App Review Information に説明を追加する

Google Play Console のアプリのコンテンツまたは審査メモに以下の内容を含めてください:

This app uses Android WebView to display web content from our server.
All native device API access (camera, location, biometric, etc.) is
controlled by a static configuration file (config.json) bundled at
build time. No new native capabilities can be added dynamically
after installation. The app does not download or execute native code
at runtime.

2. config.json のコピーを添付する

審査メモに config.json の内容を添付すると、審査担当者がアプリの機能範囲を明確に理解できます。

config.json の例
{
  "modules": {
    "accessibility": { "enabled": true },
    "bottomTabs": { "enabled": true },
    "sideDrawer": { "enabled": false }
  },
  "security": {
    "screenshotProtectionEnabled": true,
    "rootDetectionEnabled": true
  }
}

3. Bridge API リストをドキュメント化する

ウェブコンテンツが呼び出す唯一のグローバルオブジェクトは window.unveilyBridge であり、すべてのネイティブ機能はこのオブジェクトの名前空間を通じて公開されます。必要に応じて以下のリストを提出してください:

  • unveilyBridge — データ保存、ページ移動、キャッシュ管理
  • unveilyBridge.accessibilityPanel / .tts / .stt — アクセシビリティパネル、TTS、STT
  • unveilyBridge.bottomTabs / .sideDrawer / .topDownMenu — ナビゲーション
  • unveilyBridge.qr — QR・バーコードスキャン(config で有効化した場合)
  • unveilyBridge.auth — 生体認証、ソーシャルログイン(プランで有効化した場合)

_unveilyBridgeQR_unveilyBridgeBiometric のようにアンダースコア(_)で始まる名前は SDK 内部の登録名にすぎず、Web から直接呼び出すものではありません。Web 開発者が使用する公開 API は window.unveilyBridge の 1 つだけです。

4. App Store(iOS)へ提出する場合

App Store に提出する場合も同じ原則が適用されます。さらに以下を確認してください:

  • 使用する機能に対応する Info.plist の使用目的文字列(例: NSCameraUsageDescriptionNSFaceIDUsageDescription)を正直かつ明確に記述する
  • アプリ内課金を使用する場合は StoreKit 2 の商品を App Store Connect で構成する
  • 上記の WebView の動作説明メモを App Store Connect の審査メモにも同様に添付する

審査後の注意事項

config.json の変更 = アプリのアップデートが必要

config.json はビルド時に assets/ に含まれます。設定を変更するには:

  1. config.json を修正する
  2. アプリを再ビルドする(新しい APK/AAB を生成)
  3. Google Play にアップデートを提出する(再審査)

config.json はサーバーからリモートで置き換えることができません。アプリにバンドルされた静的ファイルのため、変更には必ずアプリのアップデートが必要です。

ウェブコンテンツの変更は自由

ウェブアプリ(HTML/CSS/JS)はサーバーから自由に更新できます。これは通常のウェブサイトの更新と同じであり、アプリの再審査は必要ありません。

ただし、以下の事項を守る必要があります:

  • 審査時に承認された機能の範囲を超えないこと
  • ネイティブ機能を回避するコードを追加しないこと
  • Google Play のポリシーに違反するコンテンツを表示しないこと

よくあるリジェクトの事例と対応

返信文を AI で素早く作成

リジェクトされたら、リジェクト理由の原文 + 上記の WebView 動作説明メモ + config.json を AI アシスタント(Claude・Gemini・ChatGPT)に渡し、「審査チームに送る丁寧で明確な返信の下書き」を依頼すると、対応を大きく速められます。送信前に事実関係はご自身で確認してください。

リジェクトの理由対応方法
「アプリはウェブサイトをラップしているだけ」ネイティブ機能(QR スキャン、生体認証、プッシュ通知など)を活用していることを説明する
「コア機能が WebView に依存している」Bridge 機能リストと config.json を提出して差別化を説明する
「権限使用の目的が不明確」各権限がどの機能に使われるかを審査メモに明記する

WebView アプリがリジェクトされる最も一般的な理由は「ウェブサイトをラップしただけのアプリ」と判断されることです。Unveily SDK のネイティブ Bridge 機能(QR スキャン、生体認証、アクセシビリティなど)を積極的に活用して審査メモに明記することで、承認される可能性が高まります。

On this page