INDIE INDEX

レベル:実践

Androidに書き出す|UnityとGodotの署名とAAB

公開 2026-10-24更新 2026-10-24

Google Play では、アプリを APK ではなく AAB(Android App Bundle)にする必要があり、AAB も APK も、デバッグ用ではないキーストアで署名してアップロードします。Unity は既定では APK を作るので、File > Build Profiles で Android を選び、Build App Bundle (Google Play) を有効にします。Godot は Gradle ビルドを使い、Android のエクスポートプリセットの Release の欄にキーストアのパスを入れます。

このページの目次
  1. AAB と署名の決まり
  2. 書き出す前に入れるツールと署名の鍵
  3. Google Play の対象 API レベル
  4. UnityとGodotでAABを作る手順
  5. 失敗を避ける注意
  6. 次に読む
  7. 情報源

AAB と署名の決まり

APK と AAB と Google Play の決まりには、たとえば次のものがあります。

APK と AAB と Google Play の決まり

項目内容
APKAndroid では、デバイスへのインストールや更新の前に、すべての APK に証明書でデジタル署名する必要があります。
AAB(Android App Bundle)公開用の形式で、アプリのコンパイル済みコードとリソースをすべて含みます。APK の生成と署名は、Google Play が行います。Google Play は、AAB からデバイス設定ごとの APK を作って配信します。
Google Play の決まりGoogle Play では、アプリを APK ではなく Android App Bundle(AAB)にする必要があります。Android のアプリを預かる配信サービスの中には、ビルドの手順を変えうる決まりを持つものがあります。2021年8月より後に Google Play へアップロードするすべての新しいアプリは、AAB のファイルにする必要があります。Godot で AAB を書き出すには、Gradle ビルドの設定が要ります。
表1

AAB でリリースする場合は、アップロード鍵で署名した AAB を Google Play Console にアップロードします。そこから先は、Play アプリ署名が処理します。AAB か APK を Google Play ストアへアップロードするには、デバッグ用ではないキーストアのファイルで署名する必要があります。

Android App Bundle で公開したアプリは、ユーザーがダウンロードするとき、インストールに必要な圧縮 APK(ベース APK と設定 APK など)の合計を 4 GB 以下にする必要があります。オンデマンドの機能モジュール(およびその設定 APK)のように後からダウンロードするものにも、同じ圧縮ダウンロードサイズの制限があります。Asset Pack は、この制限には含まれず、別の制限があります。Android App Bundle は、APK 拡張(*.obb)ファイルに対応していません。

Play アプリ署名を使う場合は、2 つの異なる鍵を扱います。アップロード鍵の保有者はデベロッパーで、形式は Java Keystore(.jks か .keystore)です。要件は、2,048 ビット以上の RSA 鍵であることです。目的は、AAB を Google Play Console にアップロードする前の署名です。Google は、この鍵を使って本人確認をします。不正使用や紛失が起きたときは、Google がこの鍵をリセットできます。

アプリ署名鍵の保有者は Google Play で、公開証明書(.der か .pem)に関連付けられます。要件は、Google が生成する鍵が RSA 4,096 ビット、カスタム鍵が RSA 2,048 ビット以上であることです。ユーザーのデバイスに配信される最終的な APK への署名に、Google がこの鍵を使います。この鍵の生成は Google に委託でき、独自の鍵を提供することもできます。Play アプリ署名を使用せずに自分で管理する場合は、この鍵を紛失してもリセットできません。

新しいアプリでは、まずアップロード鍵のキーストアを生成し、リリースする AAB に署名します。キーストアは Android Studio か、コマンドラインの Java Keytool ユーティリティで作れます。そのあと Google Play Console で新しいリリースを準備し、AAB をアップロードします。AAB をアップロードしたとき、デフォルトの設定では、Google が生成した鍵を使う量子対応のハイブリッド署名に、アプリが自動で登録されます。

書き出す前に入れるツールと署名の鍵

Unity と Godot で、入れるものと、署名の鍵の作り方・入れ方を並べます。

Unity と Godot の準備と署名の鍵

項目UnityGodot
入れるものAndroid Build Support のモジュール・Android SDK・NDK・Java Development Kit が要ります。既定では、Unity は OpenJDK を使います。Unity 6.0 の開発用には、Android SDK(15/API 35)・Android NDK(r27c)・OpenJDK(17)が、Unity Hub で既定でインストールされます。OpenJDK 17 と Android SDK を入れます。Android SDK は、Android Studio Iguana(2023.2.1 版)以降を使って入れられ、一度起動して SDK の設定を済ませます。sdkmanager のコマンドラインツールでも入れられます。
キーストアの作り方「Edit > Project Settings > Player > Android > Publishing Settings」 で Keystore Manager のウィンドウを開き、左上の Keystore > Create New を選びます。Password と Confirm password にパスワードを入れ、キーを足して仕上げます。キーストアには、少なくとも1つのキーが要ります。「`keytool -v -genkey -keystore mygame.keystore -alias mygame -keyalg RSA -validity 10000`」 で作れます。このキーストアとキーは、デベロッパーの ID を確かめるのに使われます。
鍵を入れる場所Publishing Settings の Project Keystore で Custom Keystore を有効にし、Select のプルダウンの Browse でキーストアを選び、Keystore password を入れます。Key alias のプルダウンで使うキーを1つ選び、Key password を入れます。Android のエクスポートプリセットの Release にキーストアのファイルのパス、Release User にキーのエイリアス、Release Password にキーのパスワードを入れます。キーストアのパスワードとキーのパスワードは、現在は同じである必要があります。書き出すときは Export With Debug のチェックを外します。
表2

Godot では、次の Android SDK のパッケージが入っていることを確かめます。Android SDK Platform-Tools version 35.0.0 以降・Android SDK Build-Tools version 35.0.1・Android SDK Platform 35・Android SDK Command-line Tools(latest)・CMake version 3.10.2.4988404・NDK version r28b(28.1.13356709)です。OpenJDK 17 より高い版の JDK にも対応しています。

Godot のエディタ設定は、Editor Settings の画面(macOS では Godot のタブ、ほかの OS では Editor のタブ)で行います。Android の設定の Java SDK Path に OpenJDK 17 を入れた場所、Android SDK Path に Android SDK を入れた場所を入れます。Android SDK Path のディレクトリには、platform-tools/adb が入っています。たとえば Windows では %LOCALAPPDATA%\Android\Sdk\、macOS では /Users/$USER/Library/Android/sdk/ です。

Unity の新しいプロジェクトの既定の署名方法は、デバッグ署名です。デバッグ署名のアプリは、Android のデバイスで動かせますが、公開できません。独自の署名情報を指定すると、Gradle が独自の署名を使います。独自の署名のアプリは、Android のデバイスで動かせて、公開もできます。Custom Keystore を無効のままにすると、Unity はデバッグ用のキーストアで署名します。アプリストアは、デバッグ用のキーストアで署名したアプリを断ります。

Unity の Keystore > Create New の Anywhere か In Dedicated Location を選ぶと、既定の保存先でファイルエクスプローラーが開きます。ほかのフォルダへ移って、そこに保存することもできます。既定の保存先は、Anywhere では Project フォルダの一番上、In Dedicated Location では Keystores Dedicated Location に設定した道です。この道の既定は、macOS では $HOME/、Windows では %USER_HOME%\ のホームディレクトリで、「Edit > Preferences」(macOS では「Unity > Settings」)の「External Tools > Android > Keystores Dedicated Location」で変えられます。

Unity は、Keystore と Project Key のパスワードを保存しません。独自の署名を指定したときは、Unity Editor を再起動するたびに、キーのパスワードを入れ直す必要があります。パスワードを入れずにビルドすると、ビルドは失敗します。

Godot のキーストアのパスワードに特殊な文字を使うと、エラーになることがあります。Godot の書き出しの項目は、エディタの代わりに環境変数でも指定できます。書き出しのときは、環境変数がエディタに入れた値を上書きします。Release は GODOT_ANDROID_KEYSTORE_RELEASE_PATH、Release User は GODOT_ANDROID_KEYSTORE_RELEASE_USER、Release Password は GODOT_ANDROID_KEYSTORE_RELEASE_PASSWORD です。

Google Play の対象 API レベル

Google Play の対象 API レベルの要件には、たとえば次のものがあります。

Google Play の対象 API レベルの期日と数

項目内容
新しいアプリとアプリのアップデート2026年8月31日以降、Google Play へ新しいアプリとアプリのアップデートを送信する場合は、対象を Android 16(API レベル 36)以降にする必要があります。ただし、Wear OS アプリと Android Automotive OS アプリは Android 15(API レベル 35)以降、Android TV アプリと Android XR アプリは Android 14(API レベル 34)以降を対象にする必要があります(2026年10月24日に公式サイトで確認)。
既存のアプリ既存のアプリが、対象の API レベルより高い Android OS を搭載したデバイスの新規ユーザーにも引き続き提供されるには、Android 15(API レベル 35)以降を対象にする必要があります。Android 14(API レベル 34)以前を対象にするアプリ(Wear OS・Android TV・Android XR では Android 13(API レベル 33)以前、Android Automotive OS では Android 12(API レベル 31)以前)は、対象の API レベル以下の Android OS を搭載したデバイスでだけ利用できます(2026年10月24日に公式サイトで確認)。
表3

更新にさらに時間が必要なアプリは、2026年11月1日までの延長をリクエストできます(2026年10月24日に公式サイトで確認)。内部配布専用で特定の組織のユーザーのみに公開される、永続的な限定公開アプリは、これらの要件の例外です。

Unity の Android の Player settings には、Minimum API Level と Target API Level の項目があります。Minimum API Level は、アプリを動かすのに必要な Android の最低のバージョン(API レベル)です。Target API Level は、アプリをコンパイルするときに対象にする Android のバージョン(API レベル)です。Google の対象 API レベルのページの最終更新日は、2026年10月17日(UTC)です。

UnityとGodotでAABを作る手順

Unity で AAB を作る手順です。

  1. File > Build Profiles を選びます。
  2. Add Build Profile を選ぶと、Platform Browser のウィンドウが開きます。Platform の欄の一覧から Android を選びます。Android が選べないときは、Install with Unity Hub を選び、案内に沿ってインストールします。Android を選んだら、Add Build Profile を選びます。
  3. Switch Profile を選び、新しいビルドプロファイルを有効にします。
  4. Export Project を無効にします。そのうえで、Build App Bundle (Google Play) を有効にします。この設定は、Export Project を無効にしているときだけ見えます。
  5. 「Edit > Project Settings > Player > Android > Publishing Settings」 で Keystore Manager のウィンドウを開き、Keystore > Create New でキーストアを作って、キーを足します。
  6. Publishing Settings の Project Keystore で Custom Keystore を有効にし、キーストアを選んで Keystore password を入れます。Key alias のプルダウンで使うキーを選び、Key password を入れます。Keystore Manager の中から読み込むと、Project Keystore と Project Key の欄は Unity が自動で埋めます。
  7. Build を選び、Unity がアプリを置く先を選んで Save を選ぶと、ビルドが始まります。Build and Run を使うときは、先に Run Device で実行する端末を選びます。

Godot で AAB を作る手順です。

  1. OpenJDK 17 と Android SDK を入れ、Editor Settings の Java SDK Path と Android SDK Path を設定します。
  2. Project メニューで、Gradle Build のテンプレートを入れます。書き出しのテンプレートがダウンロード済みかを確かめます。ダウンロードしていないときは、このメニューでダウンロードできます。Gradle ベースの Android プロジェクトが res://android/build の下に作られます。プロジェクトを変える必要がなければ、これらのファイルを編集する必要はありません。
  3. 「keytool -v -genkey -keystore mygame.keystore -alias mygame -keyalg RSA -validity 10000」 でキーストアを作ります。
  4. Project > Export の画面で Android のプリセットを足し、Gradle Build を有効にします。以後、書き出しやワンクリックデプロイを行うと、Gradle のビルドシステムが呼ばれて新しいテンプレートが作られます。できたテンプレートは自動的に使われます。
  5. Android のエクスポートプリセットで、Release にキーストアのファイルのパス、Release User にキーのエイリアス、Release Password にキーのパスワードを入れます。
  6. Export With Debug のチェックを外して書き出します。

Unity と Godot の操作の順を、それぞれ1本の流れにしました。どちらの流れも、最後は同じ四角につながります。

Unity の書き出しの流れ

Unity の書き出しの流れ1Android のビルドプロファイルを足して有効にするFile > Build Profiles・Add Build Profile・Switch Profile2AAB にする設定を入れるExport Project を無効にして、Build App Bundle (Google Play) を有効にする3キーストアを作って読み込むPublishing Settings の Keystore Manager・Custom Keystore・Key alias4ビルドするBuild・Save5Google Play Console に AAB を上げる(別の枚へ)スマホにゲームを出す手順のページ
図1

Godot の書き出しの流れ

Godot の書き出しの流れ1OpenJDK 17 と Android SDK を設定するEditor Settings の Java SDK Path・Android SDK Path2Gradle Build のテンプレートを入れるProject メニュー3キーストアを作るkeytool4Gradle Build を有効にして鍵を入れるProject > Export の Android のプリセット・Release・Release User・Release Password5書き出すExport With Debug のチェックを外す6Google Play Console に AAB を上げる(別の枚へ)スマホにゲームを出す手順のページ
図2

失敗を避ける注意

Godot で、端末にインストールできなかったというエラーが出たときは、同じ Android のパッケージ名で、別の鍵で署名したアプリが端末に入っていないかを確かめます。入っているときは、そのアプリを Android の端末から削除してから、もう一度書き出す必要があります。

Godot のランチャーアイコンは、xxxhdpi の密度の画面向けの高解像度のものだけが要り、低解像度のものは自動で作られます。Main Icon は 192×192 px 以上、Adaptive Icons は 432×432 px 以上、Themed Icons(任意)は 432×432 px 以上です。Adaptive Icons では、アイコンの大事な部分を、中央の直径 66dp(xxxhdpi で 264 ピクセル)の円の内側に収めると、ランチャーに切り取られません。

Godot で C# のプロジェクトは、Godot 4.2 から Android に書き出せますが、サポートは実験扱いで、いくつかの制限があります。

Godot の Gradle の Android ビルドでは、名前がアンダースコアで始まるフォルダに置いたアセットは、生成される APK に含まれません。ファイル名がアンダースコアで始まるアセットには、当てはまりません。たとえば _example/image.png は含まれず、_image.png は含まれます。

Unity の Keystore Manager で In Dedicated Location を選ぶと、キーストアはプロジェクトフォルダの外にあるため、版管理には追跡されず、共同作業者がアクセスできません。

Google マップ・OAuth・Facebook ログインなどの API を使っているアプリでは、API プロバイダへの登録に、Google が保持するアプリ署名鍵のフィンガープリントが必要です。最終的な APK に署名するのは Google なので、ローカルのアップロード鍵のフィンガープリントだけでは足りません。

次に読む

Play Console のアカウントの登録から、ビルドの提出と審査までは、スマホにゲームを出す手順にあります。

情報源

このページに出た言葉

このページの内容の誤りは、問い合わせの窓口で受け付けています。