7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AndroidAdvent Calendar 2022

Day 17

Github Actionsで自動的にAndroidアプリをビルドした後にFirebase App Distributionに配布する

Last updated at Posted at 2022-12-25

Androidアプリの開発において Github Actionsにて自動的にビルドする環境作成 について紹介しました。
今回ビルドが完了した後、Firebase App Distributionにアプリを配布する方法(CD環境の構築)について紹介していきます。
具体的に実際にアプリを自動的に配布している様子は以下のプロジェクトで公開しています。
github-actions-examples
実際にGithub Actionsで自動的に配布を行なっている実行フローについてはこちらに記述しています。

モチベーション

Github Actionsのみで運用していく場合、以下のような課題があります

  • Github Actionsにてビルドした成果物をアップロードする場合、無料プランでは500MB/月までしかアップロードすることができない
  • 非開発者にとってGithub Actionsの成果物を端末にダウンロードしてアプリをインストールするフローは使いづらく、運用するハードルが高い

このような課題を解決する方法として、Firebase App Distribution などのSaaSを使用し、組み合わせることで課題を解決することができる。

実行フロー

Github Actionsで実際に実行されるフローの様子について以下に図示します

今回、紹介するフローは上記の「アプリを配布するまでのフロー」について紹介していきます

Firebase App Distribution

Firebase App Distribution とは?

手順の紹介の前に Firebase App Distribution について紹介します。
Firebase App Distribution はFirebaseの中の機能の一つです。
Firebase App Distribution を使用することで、アプリをストアに公開前のクローズドな環境下でテストを行うことができます。
また、いくらアプリを配布しても全て無料で利用することができます。詳しくは こちら を参照してください。

Firebaseプロジェクトにアプリを登録する

FirebaseにてFirebase App Distribution などの各種ネイティブアプリの機能を使う場合、Firebaseにアプリを登録することでそれぞれの機能を使用することができるようになる。

1.1 初回利用開始画面からアプリの登録を行う

firebase-register-app.png

1.2 またはプロジェクト設定からアプリを追加する(すでにアプリが登録されている場合もこちらより)

firebase-project-settings.png

firebase-add-app.png

今回はAndroidアプリなのでAndroidを選択する

firebase-add-app-popup.png

  1. パッケージ名などの必要な情報を入力する

new-android-app.png

※パッケージ名とはAndroidプロジェクトにおける app/build.gradle 内に記載されている applicationId に記載されている値を使用します。(こちらの build.gradle に記載されている部分)

app/build.gradle
...
android {
  ...
  defaultConfig {
    applicationId "net.taptappun.taku.kobayashi.githubactionsexamples" // パッケージ名
    ...
  }
}

または app/src/main/AndroidManifest.xml 内に記載されている <manifest package に記載されている値を使用します。(こちらの AndroidManifest.xml に記載されている部分)

app/src/main/AndroidManifest.xml
...
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.taptappun.taku.kobayashi.githubactionsexamples">
  ...
</manifest>
  1. アプリの登録完了すると「マイアプリ」よりアプリIDなどの確認ができるようになります

check-app-id.png

※ 今回は Firebase App Distribution の使用なので「構成ファイルの追加」や「Firebase SDKの追加」などは不要

Firebase App Distribution アプリを配信する

Firebaseプロジェクトにアプリを登録することができたら Firebase App Distribution アプリを配信することができます。
以下の手順でアプリを配信していきます。

  1. firebase-toolsというCLIツールをインストールする
npm install -g firebase-tools
  1. 以下のコマンドを実行して、Github Actionsで使用するFirebase Tokenを取得する
firebase login:ci
  1. Firebase AppId を確認する

check-app-id.png

  1. コマンドを実行して、Firebase App Distribution にアプリを配信する
firebase appdistribution:distribute [APKファイルが置いてある場所のファイルパス] --app [FirebaseAppId] --token [取得したFirebaseToken]

Firebase App Distribution からアプリをダウンロードする

アプリが配信されるとリリースのリストに新しいリリースが追加されます

distribution-list.png

リリースの詳細を開くことでapkのダウンロードすることができます。

distribution-detail.png

またプロジェクトオーナー以外の人からもアプリのダウンロードを行いたい場合は以下の方法にて招待することで利用することができるようになります。

  1. プロジェクトに招待する
    1.1 「プロジェクト設定」を開き「ユーザーと権限」を選択し、「メンバーの追加」をおこなう。(付与する権限に注意)

invite-project.png

  1. テスターとして招待リンクを共有する
    2.1 「招待リンク」から「招待リンクを作成」を選択

tester-links.png

2.2 「リンクを作成」を選択

generate-distribution-link.png

2.3 作成された「リンクをコピー」してURLを共有する

firebase-generate-link.png

2.4 リンクが作成されると一覧からも確認することができます。

tester-link.png

2.5 作成されたリンクより登録した人たちは「テスターとグループ」より確認することができます。

firebase-distribution-tester.png

Github Actionsの中に組み込む

Github Actions上でAndroidアプリをビルドするまでの流れについては Github Actionsにて自動的にビルドする環境作成 にて紹介していますので、そちらを参照してください。
ビルドが完了した後、上記のFirebase App Distributionに配布するコマンドをレシピに追加することで自動的に配信が可能です。
この時、Firebase TokenとFirebase AppIdの情報は公開したくない情報なのでGithub Secretsに登録して、登録した値を参照するようにします。

github-actions-secrets.png

github-actions-add-secrets.png

最後に

Github Actionsで自動的にAndroidアプリをビルドした後にFirebase App Distributionに配布する環境を構築する方法について紹介しました。この環境を構築することで便利になり、開発〜テストの速度の向上につながります。
ぜひこのようなCD環境の導入に役立ててください。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?