- 初めに
- 開発環境
- テスト配布サービスの調査
- Unityプロジェクトの作成
- UNITY_LICENSEの取得
- GitHub Repository secretsにUnityに関するKeyの登録
- GitHub ActionsでUnityのAndroidビルドを行う
- Firebaseプロジェクトの作成
- GitHub Repository secretsにFirebaseに関するKeyの登録
- GitHub ActionsからFirebase App DistributionにAPKをアップロードする
- ビルド結果
- 参考記事
初めに
スマホ向けのゲーム開発やアプリ開発を行う際に、Unityエンジニア(ここではローカルでビルドして端末にインストールできる人)以外にバイナリーを触ってもらう際の方法として Firebase App Distributionから最新のバイナリーを触ってもらうための自動化についての方法です

以下にてリポジトリを公開しています
開発環境
- Unity 6000.0.38f1(Personal)
- Firebase App Distribution
テスト配布サービスの調査
2025/3/06時点でテスト配布サービスは以下のようなものがあります
- DeployGate : メンバー登録は3人のみ
- Firebase App Distribution
- TestFlight : iOSのみ
- App Center : 2025/3/31時点で廃止
この中で使いやすいものの一つとして今回はFirebase App Distributionで Androidの配布を行っていきます
Unityプロジェクトの作成
新規で適当に作るだけで問題ないです。こちらを GitHubにpushします。
UNITY_LICENSEの取得
現時点でUNITY_LICENSE(Personal)は特殊な方法でしか取得できないみたいです
過去に以下の記事を書いていますが、今回うまくいかなかったので別の方法で取得しました
以下のパスにある人は ulf取得までスキップしてください
Windows: C:\ProgramData\Unity\Unity_lic.ulf
Mac: /Library/Application Support/Unity/Unity_lic.ulf
Linux: ~/.local/share/unity3d/Unity/Unity_lic.ulf
まずは Unity HubからUnity_lic.alfを取得します。UnityHubの Preferencesから Licensesを開きます。

Addボタンを押して、Activate with license request を押します。

1.でUnity_lic.alfをダウンロードします。
2でmanual ページ ( https://license.unity3d.com/manual )を開きます。alfを選択して次の画面に遷移します。
以下のシリアルナンバーを入れる画面にて、Developerツールを開きます。

Elementsからoption-personal clearを探して、Styles内でdisplay:noneのチェックをオフにします。

その後 I don’t use Unity in a professional capacity. を選択して、licenseファイルをダウンロードします。

GitHub Repository secretsにUnityに関するKeyの登録
この時点で、Unityに関するSecret Keyを登録します。
- メールアドレス
- パスワード
- license(先ほどダウンロードしたテキストの中身)

GitHub ActionsでUnityのAndroidビルドを行う
この時点でGitHub Actionsを使ったAndroidビルドができる状態になっています。
.github/workflows/firebase_distribute.yaml に以下のような yamlファイルを作成して、GitHub Actionsでビルドを回してビルドが正常に完了するかを確認します。
name: Unity Build and Distribute (Android Only) on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: jobs: build: name: Build Unity Project (Android) runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4.2.2 - name: Cache Unity Library uses: actions/cache@v4.2.0 with: path: Library key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }} restore-keys: | Library- - name: Run the build for Android uses: game-ci/unity-builder@v4.3.0 env: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} with: targetPlatform: Android # ビルド対象プラットフォーム buildsPath: build # 出力フォルダ(小文字の "build" を使用) buildName: MyAndroidApp # ビルド名(生成されるファイル名は MyAndroidApp.apk) androidExportType: androidPackage # 出力形式: APKをビルド unityVersion: '6000.0.38f1' # 実際のUnityバージョンに合わせて変更 - name: Upload the Build for Android uses: actions/upload-artifact@v4.6.0 with: name: Build-Android path: build/Android/MyAndroidApp.apk
Firebaseプロジェクトの作成
Firebase TOPから新規プロジェクトを作成します。
作成後にApp Distributionを選択して、Androidのアプリを追加します。

Android アプリへの Firebase の追加の設定を行います。

こちらでリリースにて apk もしくはaabを手動でドラッグをすると配布できるようになります。

GitHub Repository secretsにFirebaseに関するKeyの登録
GitHubからFirebase App Distributionにアップロードする際には以下のキーが必要になります
- アプリID
- Google Cloudのサービスアカウントキー
まずは Firebaseの プロジェクトの設定を開きます。

下の方に アプリのIDは以下のところに記載されています。

次にサービスアカウントを発行します。コンソールのサイドメニューから IAMと管理 → サービスアカウント を選択します。

サービスアカウントの作成を行い、ロールに Firebase App Distribution Dmin SDKサービスエージェント を選択します。

鍵のタブを選択して、キーを追加します。このときにキータイプは JSONを選択します。

ダウンロードしたjsonファイルを以下のコマンドで変換します。
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("full path"))
変換をするとターミナルに以下のような文字が出てきます
ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAidW5pdHktYXBwLWRpc3RyaWJ1dGlvbiIsCiAgInByaXZhdGVfa2V5X2lkIjogImY2ZTVlOGYwZjdkMjk5NzU0MWRkNWNi .....
こちらを 以下のように Secret Keyに登録します

GitHub ActionsからFirebase App DistributionにAPKをアップロードする
以下の内容をyamlに追加して、ビルドしたAPKをアップロードする処理を追加します。
# 2) Google Cloud SDK (gcloud) をインストール - name: Install Google Cloud SDK run: | sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates gnupg curl echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" \ | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg \ | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - sudo apt-get update sudo apt-get install -y google-cloud-sdk # 3) Firebase CLI インストール (standalone) - name: Install Firebase CLI run: | curl -sL https://firebase.tools | bash firebase --version - name: Setup Service Account & Distribute run: | # 1) JSON を復元 echo "${{ secrets.GCP_SA_KEY }}" | base64 --decode > service_account.json echo "Service Account JSON size: $(stat -c %s service_account.json) bytes" # 2) 変数をエクスポート (これでこのステップのシェルで認識される) export GOOGLE_APPLICATION_CREDENTIALS="$(pwd)/service_account.json" # 3) Firebase CLI を使ってアップロード firebase appdistribution:distribute build/Android/MyAndroidApp.apk \ --app ${{ secrets.FIREBASE_ANDROID_APP_ID }} \ --groups "testers" \ --release-notes "Release from GitHub Actions" \
ビルド結果
ビルドすると以下のように アーティファクトに apkのアップロードがされて、その内容がFADにもアップロードされます。

