Firebase App Distribution へのアップロード
GitHub ActionsでFirebase App Distributionにアプリをアップロードするには wzieba/Firebase-Distribution-Github-Action を使用して以下のように設定する。
- name: upload artifact to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: アプリID
serviceCredentialsFileContent: FirebaseサービスアカウントのcredentialのJSON文字列
groups: グループ名
file: apkファイルのパス
with
で指定する値を以下で説明する。
appId(アプリID)
アプリIDはFirebaseのプロジェクトの設定画面で取得できる。
画面左上の歯車アイコンをクリックしてプロジェクトの設定画面を開き、画面下あたりの「アプリID」をコピーする。
serviceCredentialsFileContent(FirebaseサービスアカウントのcredentialのJSON文字列)
FIrebaseサービスアカウントのcredentialのJSON文字列を指定する。
画面左上の歯車アイコンをクリックしてプロジェクトの設定画面を開き、「サービスアカウント」タブの「サービスアカウント権限の管理」をクリックする。
Google CloudのIAMの画面に遷移するので、「サービスアカウント」をクリックしてサービスアカウントを作成する。
作成したサービスアカウントのメニューから「鍵を管理」をクリックする。
キーを追加から「新しいカギを追加」をクリックする。
キーのタイプはJSONを選択して「作成」をクリックするとJSONファイルをダウンロードできる。
こうして作成したJSONファイルの中身をserviceCredentialsFileContent
に指定する。
長い文字列であり、かつ外部にもれてはいけないので、GitHubのSecretsに保存しておいて、GitHub Actionsから使用するとよい。
serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }}
groups(グループ名)
App Distribuionで作成したグループ名を指定する。
複数のグループを指定するにはカンマ区切りで指定する。
groups: group1,group2
App DistributionのグループはApp Distributionの画面の「テスターとグループ」タブで作成・確認できる。
file(apkファイルのパス)
アップロードするapkファイルのパスを指定する。
通常のAndroidアプリにおいて./gradlew :app:assembleRelease
で生成されるapkファイルはapp/build/outputs/apk/release/app-release.apk
にある。
一度手元でビルドしてみてプロジェクトのトップからの相対パスを確認しておくとよい。
設定例
name: App Distribution
on:
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: 17
cache: gradle
- name: restore key store
run: echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > release.keystore
- name: Build
run: |
./gradlew :app:assembleRelease
- name: upload artifact to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{secrets.FIREBASE_APP_ID}}
serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }}
file: app/build/outputs/apk/release/app-release.apk