Firebase App Distributionとは
Firebase App Distributionは開発途中のアプリケーションをテスターに配布するプラットフォームで、AndroidとiOSに対応しています。
今回はFirebaseコンソールとGradleを使用したapkファイルの配信方法を紹介します。
特徴
- クロスプラットフォーム
- AndroidとiOSに対応しています
- テスターの管理
- テストチームをグループにまとめて管理できます
- 招待メールを作成したり招待リンクを作成できます
- 招待した人数、招待を承認した人数、インストール数など把握できます
- テストアプリの配信方法が豊富なのでお使いのCI環境に合わせてすぐ導入できます
- Firebaseコンソールから配布
- firebaseコマンドから配布
- gradleから配布(Android)
- fastlaneから配布
- Crashlyticsを組み合わせるとビルドで安定性の指標を自動的に取得できます
- 新しいアプリを配信すると準備ができたことがテスターに通知されます
Firebase コンソールを使用して配信
Firebaseコンソールを使用すると気軽にアプリを配信できます。
下準備
- apkファイルを作成します
- FirebaseコンソールにAndroidのプロジェクトを追加します
配信
App Distributionのページを開き利用契約を確認&チェックし開始を押します
予め用意したapkファイルをアップロードします
アップロード完了後、リリースノートを書きテスターを追加します
テスターに追加すると、招待メールがテスターに届きメールにあるリンクにアクセスするとアプリをダウンロードできます。なおFirebase App Distributionコンソール上では、招待済、承認済、ダウンロード済の数字が状況に合わせて変化するのでテスターの動向を確認できます。
以上でアプリを配信できました。しかしこれだと毎回手動でアップロードすることになるので、CI等に組み込み自動化したいところです。次にGradleを使用した配信方法を紹介します。今回はGradleを使用しましたが、Firebase CLIやfastlaneにも対応しており、使い方も大きく変わらないので、ご自身の環境に合わせ使い分けていただければと思います。
Gradle を使用して Android アプリをテスターに配布する
app/build.gradleを編集
app/build.gradleにFirebase App Distributionのスクリプトを追加します。
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.appdistribution'
buildscript {
repositories {
google()
}
dependencies {
classpath 'com.google.firebase:firebase-appdistribution-gradle:1.2.0'
}
}
認証
appDistributionLoginコマンドまたはサービスアカウントを使用し認証します。
appDistributionLoginでOAuth認証
$ ./gradlew appDistributionLogin
実行すると認証用ページのURLが表示されるのでアクセスし認証します。
Please open the following address in your browser:
https://accounts.google.com/o/oauth2/......
下記のメッセージがでれば認証完了です。
BUILD SUCCESSFUL in 49s
1 actionable task: 1 executed
Refresh tokenがでるので FIREBASE_TOKEN
環境変数にtokenをセットします。
Refresh token: hogehogehoge
export FIREBASE_TOKEN=hogehogehoge
サービスアカウントで認証したいひとへ
サービスアカウントで認証する場合はこちらをご参考ください。
配布プロパティを構成する
次にリリースノートとテスターを指定します。今回はシンプルに下記のような構成にしました。
buildTypes {
release {
firebaseAppDistribution {
releaseNotes="テスト配信" // リリースノート
testers="ali@example.com, bri@example.com, cal@example.com" //テスター
}
}
debug {
firebaseAppDistribution {
...
}
testCoverageEnabled true
}
}
プロパティのパラメータは releaseNotesやtesters以外にも下記のようなパラメータや「デモ版」と「完全版」のプロダクトフレーバーを設定できます。詳しくは公式ドキュメントをご参考ください。
- appId
- FirebaseのアプリID
- serviceCredentialsFile
- サービスアカウントのパス
- releaseNotes
- リリースノートを文字で指定できます
- releaseNotesFile
- リリースノートが書かれたテキストファイルをパスで指定できます
- testers
- テスターのメールアドレスを文字で指定できます
- testersFile
- テスター情報が書かれたテキストファイルを指定できます
アプリを配信
app/build.gradleに追加したので app/ 配下でコマンドを実行します。
アップロードコマンドは名はパラメータやプロダクトフレーバーの設定で名称が変わるので下記で名前を確認します。
コマンドを確認
./gradlew tasks --all
Other tasks
-----------
appDistributionLogin
appDistributionUploadDebug
appDistributionUploadRelease
下記コマンドでapp-debug.apk を作成しFirebaseコンソールにアップロードします
$ ./gradlew assembleDebug appDistributionUploadDemoDebug
アップロードが成功するとテスターにアプリが配信されます
招待リンクの作成
招待リンクを作成するとテストアプリを広く通知できます
新しい招待リンクをクリック(グループやドメイン制限は特にかけることもできる)
copy linkからURLを取得し招待リンクにアクセスします
メールアドレスを入力しサインアップするとテスターに招待されます
GitHub Actionsと連携
こちらを使用すればGitHub ActionsにFirebase App Distributionを組み込みできます。