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 以降がインストールされているエミュレータ。
- デバイスを使用している場合は、接続ケーブル。
このチュートリアルをどのように使用されますか?
<ph type="x-smartling-placeholder">Android アプリ作成のご経験についてお答えください。
<ph type="x-smartling-placeholder">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 Project] が開いたはずです。
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 をアプリに追加し、アプリの新しいビルドがインストール可能になったときにアプリ内アラートをテスターに表示します。そのためには、「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 を呼び出して、テスターが新しいビルドにアクセスできるかどうかを確認します。
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
次のステップ
詳細
質問がある場合
問題を報告する