1. 概要
「Android アプリへの Firebase App Distribution SDK の統合」Codelab へようこそ。この Codelab では、新しいビルドがダウンロード可能になったときにアプリ内アラートをテスターに表示できるように、App Distribution Android SDK をアプリに追加します。基本構成とカスタム構成の両方を使用して、テスターがログインしてアップデートを受け取る方法について説明します。その後、新しいリリースを App Distribution に push し、アプリで直接新しいビルドアラートをトリガーします。
学習内容
- App Distribution を使用してプレリリース版アプリをテスターに配布する方法
- App Distribution Android SDK をアプリに統合する方法
- インストールの準備ができた新しいプレリリース版ビルドが届いたときにテスターに通知する方法
- テストのニーズに合わせて SDK をカスタマイズする方法
必要なもの
- Android Studio の最新バージョン。
- サンプルコード。
- Android 4.4 以降と Google Play 開発者サービス 9.8 以降を搭載したテストデバイス、または Google Play 開発者サービス 9.8 以降を搭載したエミュレータ。
- デバイスを使用する場合は接続ケーブル。
このチュートリアルをどのように使用されますか?
Android アプリの作成に関するご経験について、どのように思われますか。
2. サンプルコードを取得する
コマンドラインから GitHub リポジトリのクローンを作成します。
$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git
git がインストールされていない場合は、GitHub ページから、またはこちらのリンクをクリックして、サンプル プロジェクトをダウンロードすることもできます。
3. スターター アプリをインポートする
Android Studio で、ダウンロードしたサンプルコード([File] > [Open] > .../codelab-appdistribution-android/start)から codelab-appdistribution-android/start
ディレクトリ()を選択します。
Android Studio で [Start Project] が開いたはずです。
4. Firebase コンソール プロジェクトを作成する
新しい Firebase プロジェクトを追加する
- Firebase コンソールを開きます。
- [プロジェクトを追加] を選択し、プロジェクトに「Firebase Codelab」という名前を付けます。
このプロジェクトでは Google アナリティクスを有効にする必要はありません。
- [プロジェクトの作成] をクリックします。
Firebase にアプリを追加する
アプリを Firebase に登録します。パッケージ名として「com.google.firebase.appdistributioncodelab」を使用します。
アプリに google-services.json ファイルを追加する
パッケージ名を追加して [Register] を選択したら、次の手順に沿って google-services.json をアプリに追加します。
- [Download google-services.json] をクリックして、Firebase Android 構成ファイルを取得します。
- google-services.json ファイルをプロジェクトの
app
ディレクトリにコピーします。 - ファイルがダウンロードされたら、コンソールに表示される次のステップをスキップできます(build-android-start プロジェクトですでに実行されています)。
Firebase アプリと一致するようにアプリケーション ID を更新してください
- 左側のメニュー([Project] タブ)で、[Android] ビューが表示されていることを確認し、[Gradle Scripts] タブを探して、モジュール(アプリレベル)の Gradle ファイル(通常は
app/build.gradle.kts
)を開きます。 - Firebase アプリのアプリケーション ID と一致するように
applicationId
プロパティを変更します。これは「com.google.firebase.appdistributioncodelab」になります。
プロジェクトと Gradle ファイルを同期する
アプリですべての依存関係を使用できるようにするには、Android Studio ツールバーで [File] > [Sync Project with Gradle Files] を選択して、プロジェクトを Gradle ファイルと同期します。
5. App Distribution Android SDK を使用してアプリ内で新しいビルドアラートを設定する
このステップでは、Firebase App Distribution Android SDK をアプリに追加し、アプリの新しいビルドがインストール可能になったときにアプリ内アラートをテスターに表示します。そのためには、Google Cloud コンソールで「Firebase Codelab」プロジェクトに対して Firebase App Testers API を有効にします。同じアカウントでログインし、上部のプルダウン メニューから正しいプロジェクトを選択する必要があります。
アプリ内アラートを構成する
App Distribution Android SDK には、テスター向けのアプリ内ビルドアラートを設定する方法が 2 つあります。
- 基本的なアラート構成。テスターに表示する事前構築済みのダイアログに付属しています。
- 高度なアラート構成。ユーザー インターフェース(UI)をカスタマイズできます。
まず、基本的なアラートの構成から説明します。updateIfNewReleaseAvailable
を使用すると、アラートをまだ有効にしていないテスターに事前構築済みのアラートの有効化ダイアログを表示して、新しいビルドが利用可能かどうかを確認できます。テスターは、App Distribution でアプリにアクセスできるアカウントにログインすることでアラートを有効にします。このメソッドを呼び出すと、このメソッドにより次のシーケンスが実行されます。
- テスターがアラートを有効にしているかどうかを確認します。そうでない場合、このメソッドでは、テスターが Google アカウントで App Distribution にログインするように促す事前構築済みのダイアログが表示されます。
アラートの有効化は、テストデバイスで 1 回限りのプロセスであり、アプリのアップデート後も保持されます。テストデバイスでは、アプリがアンインストールされるまで、または signOutTester
メソッドが呼び出されるまで、アラートは有効なままになります。
- 対象のテスター向けの新しいインストール ビルドがあるかどうか確認します。
- テスターに最新のリリースのダウンロードを促す事前構築済みのアラートを表示します。
- アップデートを続行する前に、新しいビルドタイプを確認します。
- 新しいビルドが App Bundle(AAB)の場合は、テスターを Google Play ストアにリダイレクトして更新プロセスを完了します。
- 新しいビルドが APK の場合、SDK はバックグラウンドで新しいビルドをダウンロードし、ダウンロードが完了すると新しいビルドをインストールするようテスターに促します。SDK は
NotificationManager.
を使用して、ダウンロードの進行状況の通知をユーザーに送信します。独自の進行状況インジケーターを追加するには、updateIfNewReleaseAvailable
タスクにonProgressUpdate
ハンドラをアタッチします。
updateIfNewReleaseAvailable()
は、アプリ内でいつでも呼び出せます。たとえば、MainActivity の onResume()
メソッドで updateIfNewReleaseAvailable()
を呼び出せます。
MainActivity.kt を開き、次のように onResume()
メソッドを作成します。
MainActivity.kt
override fun onResume() {
super.onResume()
checkForUpdate()
}
次に、checkForUpdate()
メソッドを実装しましょう。
MainActivity.kt
private fun checkForUpdate() {
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
if (e is FirebaseAppDistributionException) {
// Handle exception.
}
}
}
6. アプリをダウンロードするようテスターを招待する
このステップでは、アプリをビルドし、Firebase コンソールを使用してテスターにビルドを配布して実装をテストします。
アプリをビルドする
プレリリース版のアプリをテスターに配布する準備ができたら、通常の手順で APK をビルドします。デバッグ鍵またはアプリ署名鍵を使用して APK に署名する必要があります。
アプリをテスターに配布する
アプリをテスターに配布するには、Firebase コンソールを使用して APK ファイルをアップロードします。
- Firebase コンソールの [App Distribution] ページを開きます。指示に従って Firebase プロジェクトを選択します。
- [リリース] ページで、配布するアプリをプルダウン メニューから選択します。
- [開始] をクリックします。
- アプリの APK ファイルをコンソールにドラッグしてアップロードします。
- アップロードが完了したら、ビルドを受け取るテスター グループと個々のテスターを指定します。(招待状を受け取るメールアドレスを追加します)。次に、ビルドのリリースノートを追加します。テスター グループの作成について詳しくは、テスターを追加、削除するをご覧ください。
- [Distribute] をクリックして、テスターがビルドを利用できるようにします。
これで、アプリのリリースに追加したテスターを Firebase コンソールで確認できるようになりました。
メールアドレスを入力したので、アプリのテストを案内するメールが Firebase App Distribution から届きます。これで最初のテスターになりました。招待を承諾する手順に沿って、テストデバイスでテスターとしてセットアップします。
招待を承諾する
まず、リリースをダウンロードしてテストするには、招待を承諾する必要があります。
- Android テストデバイスで、Firebase App Distribution から送信されたメールを開き、[使ってみる] をタップします。
- 表示された Firebase App Distribution テスター ウェブアプリで、Google アカウントでログインして [招待に応じる] をタップします。テストに招待されたリリースが表示されます。
テストデバイスからリリースをダウンロードする
AppDistribution Codelab アプリに移動すると、リリースをダウンロードする準備ができていることがわかります。
- [ダウンロード] をタップし、アプリをインストールして実行します。
- アプリが起動すると、新しいビルドアラートを有効にするように求められます。[ON にする] をタップします。
- テスター アカウントでログインします。
アプリに戻ります。次回のアプリの実行時には、ログインしたり、アラートを承認したりする必要はありません
テスターにアップデートを配信する
- モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で、versionName を「1.1」に、versionCode を 2 に更新します。
- 通常のプロセスに沿って APK をビルドします。デバッグ鍵またはアプリ署名鍵を使用して APK に署名する必要があります。
- この新しい APK を Firebase コンソールでアップロードし、メールアドレスをもう一度テスターとして追加して [Distribute](配信)をクリックします。
テストビルド アラート
- アプリが開いていた場合は、閉じていることを確認します。
- アプリを再起動します。
- アプリが再起動すると、「新しいバージョンが利用可能」というアラートが表示されます。
- 最新バージョンを入手するには、[更新] をクリックします。
- プロンプトが表示されたら、不明な提供元からのインストールを有効にするオプションを選択します。
- 次の画面で [Install](または [Update])をクリックします。
- お疲れさまでした。組み込みのアラートを使用してアプリを更新できました。
7. テスターのログインのカスタマイズ
signInTester/signOutTester メソッドと isTesterSignedIn メソッドを使用すると、テスターのログイン エクスペリエンスを柔軟にカスタマイズできるため、アプリのデザインに合わせてカスタマイズできます。
次の例では、テスターが Firebase App Distribution テスター アカウントにログインしているかどうかを確認します。これにより、まだログインしていないテスターにのみログイン UI を表示することを選択できます。テスターがログインしたら、checkForUpdate を呼び出して、テスターが新しいビルドにアクセスできるかどうかを確認できます。
checkForUpdate() 呼び出しをコメントアウトして、onResume での更新の自動チェックを無効にしましょう。
MainActivity.kt
override fun onResume() {
super.onResume()
//checkForupdate()
}
代わりに、checkForUpdate() はすでに updatebutton の OnClickListener に追加されています。
次に、signIn() メソッドを実装しましょう。このメソッドは、ユーザーがログアウトしている場合はログインし、すでにログインしている場合はログアウトします。
MainActivity.kt
private fun signIn() {
if (isTesterSignedIn()) {
firebaseAppDistribution.signOutTester()
configureUpdateButton()
configureSigninButton()
} else {
firebaseAppDistribution.signInTester()
}
}
最後に、isTesterSignedIn メソッドを実装しましょう。
MainActivity.kt
private fun isTesterSignedIn() : Boolean {
return firebaseAppDistribution.isTesterSignedIn
}
実装をビルドしてテストする
8. お疲れさまでした
Firebase App Distribution Android SDK を使用して、「アプリ内アラートの表示」機能をアプリに組み込みました。
学習した内容
- Firebase App Distribution
- Firebase App Distribution の新しいアラート Android SDK
次のステップ
詳細
質問がある場合
問題を報告する