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 で開始プロジェクトが開かれているはずです。
4. Firebase コンソール プロジェクトを作成する
新しい Firebase プロジェクトを追加する
- Firebase コンソールを開きます。
- [プロジェクトを追加] を選択し、プロジェクトに「Firebase Codelab」という名前を付けます。
このプロジェクトでは Google アナリティクスを有効にする必要はありません。
- [プロジェクトの作成] をクリックします。
Firebase にアプリを追加する
アプリを Firebase に登録します。「com.google.firebase.appdistributioncodelab」を使用するを使用します。
アプリに google-services.json ファイルを追加する
パッケージ名を追加して [登録] を選択したら、次の手順で google-services.json をアプリに追加します。
- [Download google-services.json] をクリックして、Firebase Android 構成ファイルを取得します。
- google-services.json ファイルをプロジェクトの
app
ディレクトリにコピーします。 - ファイルのダウンロードが完了したら、コンソールに表示される次の手順をスキップできます(これらの手順は、build-android-start プロジェクトですでに完了しています)。
Firebase アプリに合わせてアプリケーション ID を更新する
- 左側のメニュー([プロジェクト] タブ)で [Android] ビューに移動し、[Gradle スクリプト] タブを見つけて、モジュール(アプリレベル)の Gradle ファイル(通常は
app/build.gradle.kts
)を開きます。 - Firebase アプリのアプリケーション ID と一致するように
applicationId
プロパティを変更します。「com.google.firebase.appdistributioncodelab」を指定します。
プロジェクトを Gradle ファイルと同期する
アプリですべての依存関係を使用できるようにするには、[File] > [File] >Sync Project with Gradle Files] をクリックします。
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.
を使用して、ダウンロードの進行状況の通知をユーザーに送信します。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 コンソールにアップロードし、テスターとして自分のメールアドレスを再度追加して、[配布] をクリックします。
テストビルド アラート
- アプリが開いていた場合は、閉じていることを確認します。
- アプリを再起動します。
- アプリが再起動すると、「新しいバージョンが利用可能」というアラートが表示されます。
- 最新バージョンを入手するには、[更新] をクリックします。
- プロンプトが表示されたら、不明な提供元からのインストールを有効にするオプションを選択します。
- 次の画面で [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
次のステップ
詳細
質問がある場合
問題を報告する