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 で、ダウンロードしたサンプルコードの codelab-appdistribution-android/start
ディレクトリ()を選択します([File] > [Open] > .../codelab-appdistribution-android/start)。
これで、Android Studio で start プロジェクトが開いた状態になります。
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 をアプリに追加し、アプリの新しいビルドがインストール可能になるとテスターにアプリ内アラートを表示します。そのためには、「Firebase Codelab」プロジェクトで Firebase App Testers API が有効になっていることを(Google Cloud コンソールで)確認します。同じアカウントでログインし、上部のプルダウン メニューから適切なプロジェクトを選択する必要があります。
アプリ内アラートを構成する
App Distribution Android SDK では、次の 2 つの方法でテスター向けのアプリ内ビルドアラートを設定できます。
- 基本的なアラート構成: テスターに表示する事前構築済みのダイアログが含まれています。
- 高度なアラート設定: ユーザー インターフェース(UI)をカスタマイズできます。
まず、基本的なアラート構成から始めましょう。updateIfNewReleaseAvailable
を使用すると、アラートを有効にしていないテスターに対して、事前に構築されたアラートの有効化ダイアログを表示して、新しいビルドが利用可能かどうかを確認できます。テスターは、App Distribution でアプリへのアクセス権を持つアカウントにログインしてアラートを有効にします。このメソッドを呼び出すと、このメソッドにより次のシーケンスが実行されます。
- テスターがアラートを有効にしているかどうかを確認します。そうでない場合は、事前構築済みのダイアログが表示され、テスターに Google アカウントで App Distribution にログインするよう求めるメッセージが表示されます。
アラートの有効化は、テストデバイスで 1 回限りのプロセスであり、アプリのアップデート後も維持されます。テストデバイスでアラートは、アプリをアンインストールするか signOutTester
メソッドが呼び出されるまで有効のままになります。
- 対象のテスター向けの新しいインストール ビルドがあるかどうか確認します。
- 最新のリリースをダウンロードするように促す事前構築済みのアラートを表示します。
- アップデートに進む前に、新しいビルドタイプを確認します。
- 新しいビルドが App Bundle(AAB)の場合は、テスターを Google Play ストアにリダイレクトして更新プロセスを完了します。
- 新しいビルドが APK の場合、SDK は新しいビルドをバックグラウンドでダウンロードし、ダウンロードが完了すると新しいビルドをインストールするようテスターに促します。SDK は
NotificationManager.
を使用してユーザーにダウンロードの進行状況の通知を送信します。onProgressUpdate
ハンドラをupdateIfNewReleaseAvailable
タスクにアタッチすることで、独自の進行状況インジケーターを追加できます。
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 コンソールでアップロードし、メールアドレスをテスターとして再度追加して、[配布] をクリックします。
テストビルドのアラート
- アプリが開いていた場合は、閉じたことを確認します。
- アプリを再起動します。
- アプリが再起動すると、新しいバージョンが使用可能であることを示すアラートが表示されます。
- 最新バージョンを入手するには、[更新] をクリックします。
- メッセージが表示されたら、提供元不明のインストールを有効にするオプションを選択します。
- 次の画面で [インストール](または [更新])をクリックします。
- これで完了です。組み込みのアラートでアプリを更新できました。
7. テスターのログインをカスタマイズする
signInTester/signOutTester メソッドと isTesterSignedIn メソッドを使用すると、テスターのログイン エクスペリエンスをより柔軟にカスタマイズできるため、アプリのデザインに合わせやすくなります。
次の例では、テスターが Firebase App Distribution のテスター アカウントにすでにログインしているかどうかをチェックしています。これにより、まだログインしていないテスターにのみログイン UI を表示するように選択できます。テスターがログインしたら、checkForUpdate を呼び出して、テスターが新しいビルドにアクセスできるかどうかを確認できます。
onResume での更新の自動確認を無効にするには、checkForUpdate() 呼び出しをコメントアウトします。
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
次のステップ
詳細
質問がある場合
問題を報告する