Version: 2023.1
言語: 日本語
Android の Gradle
Unity ランチャーマニフェスト

Android アプリマニフェスト

Android アプリマニフェストには、Android アプリケーションに関する情報が含まれています。各アプリケーションは、AndroidManifest.xml という ソースセット のルートに 1 つの Android アプリマニフェスト XML ファイルを持ちます。Android オペレーティングシステムとデジタル配信サービス (Google Play など) は、Android アプリマニフェストを使用して、アプリケーション名、アプリケーションの エントリーポイント、Android バージョンサポート、ハードウェア機能サポート、アプリケーション権限などの情報を検索します。Android アプリマニフェストファイルの詳細と、このファイルが構成する設定の一覧については、Android デベロッパーのドキュメント (Android アプリマニフェスト) を参照してください。

アプリケーションを表すAndroid アプリマニフェストを生成するために、Gradle は様々なソースからマニフェストファイルをマージします。これには以下が含まれます。

  • Unity アプリマニフェスト: Unity が生成するマニフェストファイルで、Unity Player のアクティビティを設定します。詳しくは、Unity ライブラリマニフェスト を参照してださい。
  • Unity ランチャーマニフェスト: Unity が生成するマニフェストファイルで、Unity ライブラリをラップするアプリケーションを設定するものです。詳しくは、Unity ランチャーマニフェスト を参照してください。
  • プラグインマニフェスト: Android Archives (AAR) や Android Library プロジェクトなどのプラグインを表すマニフェストファイルです。

Unity がこれらのマニフェストファイルを使用して Android アプリマニフェストを生成する方法については、Android アプリマニフェストの生成 を参照してください。

Android アプリマニフェストの生成

Android アプリケーションのビルドプロセス は、アプリケーション用の Android アプリマニフェストファイルを生成します。これを行うには以下を行います。

  1. Unity uses the Unity Library Manifest as a template for the Android App Manifest. If you override the Unity Library Manifest, Unity uses the file you specify as the template.
  2. Unity は、権限、設定オプション、アプリケーションが使用する機能などの情報を含む Unity ライブラリマニフェストおよび Unity ランチャーマニフェストファイルを更新します。
  3. Gradle は Unity ライブラリマニフェスト、Unity ランチャーマニフェスト、およびプラグインマニフェストを 1 つのAndroid アプリマニフェストファイルにマージします。

Android Studio APK Analyzer または Apktool などの別のサードパーティツールを使用して、出力された Android アプリバンドル (AAB) または Android パッケージ (APK) 内の Android アプリマニフェストファイルを表示できます。

Important: You cannot edit the Android App Manifest file in the APK or AAB. For information on how to override the contents of an Android App Manifest, refer to Modify Gradle project files.

権限

Unity は、Android Player Settings とアプリケーションが C# スクリプトから呼び出す Unity API に基づいて、自動的に必要な権限をマニフェストに加えます。例えば、以下が含まれます。

  • Network クラスは INTERNET 権限を加えます。
  • バイブレーションの使用 (Handheld.Vibrate など) により VIBRATE を加えます。
  • InternetReachability プロパティは ACCESS_NETWORK_STATE を加えます。
  • Location API (LocationService など) は ACCESS_FINE_LOCATION を加えます。
  • WebCamTexture API は CAMERA を加えます。
  • Microphone クラスは RECORD_AUDIO を加えます。

プラグインのマニフェストで宣言された権限が必要な場合は、Gradle のマージの段階で、結果の Android アプリマニフェストに権限が自動的に追加されます。Unity はプラグインが使うすべての Unity API を権限リストに加えます。

Android アプリマニフェストで権限を指定する代わりに、Android の ラ実行時の権限システム を使用して 実行時に権限を要求する ことができます。

権限の詳細については、Android 開発者向け ドキュメントの Android マニフェストパーミッション を参照してください。

Android の Gradle
Unity ランチャーマニフェスト