【Godot】Androidのビルド手順

GodotでAndroidをビルドする (*.apkを作成する) 手順をまとめてみました。

#Androidテンプレートエクスポートをインストール
まずはAndroidテンプレートエクスポートのインストールを行います。
メニューから `プロジェクト > Androidテンプレートエクスポートのインストール` を選択します。
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/a133f10e-6afc-4610-c01d-a9781779725f.png)

「テンプレートの管理」をクリック
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/c4a18384-af40-32fe-554a-e5371f23fe3a.png)

現在のバージョンに対応したテンプレートをダウンロードします。
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/a71a81b7-668c-e2fc-babb-e11f90499b63.png)

表示されるダウンロード先のリンクをクリック
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/ae14b543-df7d-bee6-4d63-6ba764a4017a.png)

ダウンロードが完了すると インストール済みの表示がされます。
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/5828a3ec-08ca-64c4-b63e-ab1d06396ee7.png)

# Android Studio をインストール
以下のリンクからAndroid Studioをインストール
https://developer.android.com/studio

私の環境ではインストール済みだったので、手順は省略します。

* [Androidへのエクスポート - Godot Engine(stable)の日本語のドキュメント](https://docs.godotengine.org/ja/stable/getting_started/workflow/export/exporting_for_android.html)

公式マニュアルを見ると、

* ビルドツール: 30.0.1
* プラットフォーム: 29

あたりが推奨のようです (2021.2.7 現在)

# OpenJDKをインストール
JDK (Java SDK) がインストールされていない場合は以下のリンクからインストール
https://adoptopenjdk.net/index.html

もしリンク先が正しくない場合には Godot公式マニュアルを参考にインストール

インストーラーを起動します。「続ける」をクリック
* [Androidへのエクスポート - Godot Engine(stable)の日本語のドキュメント](https://docs.godotengine.org/ja/stable/getting_started/workflow/export/exporting_for_android.html)

色々とインストール設定を聞かれますが、すべてデフォルトでOKです。
![AdoptOpenJDKのインストール_と_メモ_と_AdoptOpenJDK_-_Open_source__prebuilt_OpenJDK_binaries.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/f8c69275-8442-c505-91e6-9ffe0ea94fbe.png)

インストールが完了したら、JDKのインストール先をコピーしておきます。
![AdoptOpenJDKのインストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/47e023f9-469f-1365-3b70-c3c33e6ea9d6.png)

# エディタ設定
メニューから `エディタ > エディタ設定 > Export > Android` で各種ツールのパスを設定します。

![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/dd998085-4a61-4add-3626-99bde01b3262.png)

私の設定は以下のようになりましたが、環境によって異なります。

* **Adb**: /Users/syun/Library/Android/sdk/platform-tools
* **jarsigner**: /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/jarsigner
* **Debug Keystore**: /Users/syun/Documents/keystore/debug.keystore
* **Debug Keystore User**: デフォルト値
* **Debug Keystore Pass**: デフォルト値
* **Force System User**: チェックしない
* **Custom Build Sdk Path**: /Users/syun/Library/Android/sdk
* **Timestamping Authority Url**: 指定なし
* **Shutdown Adb On Exit**: デフォルト値

## Debugキーストアの作成
以下のページを参考にDebugキーストアを作成し、作成したキーストアファイルへのパスを設定します
https://docs.godotengine.org/ja/stable/getting_started/workflow/export/exporting_for_android.html

```
keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12
```

上記コマンドで作成した場合は、デフォルトのユーザー「androiddebugkey」パスワード「android」で問題なさそう。
正式版(Googl Playストア)の提出には別途正式なキーストアを作ることになりそうです。

# エクスポート
ここまでできたらようやくエクスポートができます。
メニューから `プロジェクト > エクスポート` を選択
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/4af7048f-3c86-2e7c-9e3a-d905a4bcb329.png)

追加をクリックして、Androidを追加
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/4b259ae0-f9e6-d0f6-7aac-970c33002778.png)

## カスタムテンプレート (Debug/Release) を設定
エクスポートのカスタムテンプレート設定を行います。
`Custom Template > Debug` `Custom Template > Release` のパスを設定します。
私の環境では /Users/syun/Library/Application Support/Godot/templates/3.2.3.stable にインストールされていました

* **Debug** :/Users/syun/Library/Application Support/Godot/templates/3.2.3.stable/android_debug.apk
* **Release** :/Users/syun/Library/Application Support/Godot/templates/3.2.3.stable/android_release.apk

![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/ff74bdb6-16db-5577-6649-4e28856cc015.png)

## プロジェクトのエクスポート
*.apkの出力は「プロジェクトのエクスポート」から行います。
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/f6aadcbf-1b27-4045-4095-c72c8bb523ae.png)

もしエラーが出てこのボタンが押せなかったり、エクスポート時にエラーが出る場合は、エラーが出ないように修正します。

# モバイル用設定
以下、出力設定で少し悩んだところです。

## 縦画面モードにならない場合
エクスポート設定の `Screen > Orientation` を `Portrait` にしてもなぜか縦画面にならない
![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/4f08fd98-96e9-25b8-0ff7-0eadec45f4fd.png)

プロジェクト設定の変更が必要。
`プロジェクト設定 > Display > Window > Handheld > Orientation` を `portrait`
 に変更する

## 画面解像度に合わせて自動でスケールする
デフォルトだと、画面が大きくなっても自動でスケーリングしてくれない。

これもプロジェクト設定から。

* `Stretch > Mode > 2d`
* `Stretch > Aspect > keep`

![Godot_Engine_-_gd_pyramid_-_Main_tscn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43772/6903f5ed-0bbb-9e6e-1d82-b5830577e8fb.png)

# 参考

* [Godot 3.1 –簡単な手順でAndroidにエクスポートする方法](https://4mtsnmgzmzys73nakw4nstzmf4--godotlearn-com.translate.goog/godot-3-1-how-to-export-for-android-simple-steps/)
* [Godot 3.2 – Android用のGoogle広告（AdMob）を統合する方法](https://4mtsnmgzmzys73nakw4nstzmf4--godotlearn-com.translate.goog/godot-3-1-how-to-export-for-android-simple-steps/)
* [Androidへのエクスポート - Godot Engine(stable)の日本語のドキュメント](https://docs.godotengine.org/ja/stable/getting_started/workflow/export/exporting_for_android.html)
* [Android用のコンパイル - Godot Engine(stable)の日本語のドキュメント](https://docs.godotengine.org/ja/stable/development/compiling/compiling_for_android.html)
* https://www.youtube.com/watch?v=XHj2CMu4rJQ

# 追記
以下のページを参考にすると、実機に直接転送できそう（未確認）

* https://godotlearn.com/godot-3-2-how-to-integrate-google-ads-admob-for-android/