Firebase App Distribution Android SDK を使用して、新しいアプリのリリースについてテスターに警告する - Codelab

1. 概要

c7a9160ef7b184c7.png 22e0b52f771c060d.png

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 ディレクトリ(android_studio_folder.png)を選択します([File] > [Open] > .../codelab-appdistribution-android/start)。

これで、Android Studio でスタート プロジェクトが開いているはずです。

4. Firebase コンソール プロジェクトを作成する

新しい Firebase プロジェクトを追加する

  1. Firebase コンソールを開きます。
  2. [プロジェクトを追加] を選択し、プロジェクトに「Firebase Codelab」という名前を付けます。

このプロジェクトでは Google アナリティクスを有効にする必要はありません。

  1. [プロジェクトの作成] をクリックします。

Firebase にアプリを追加する

アプリを Firebase に登録します。パッケージ名として「com.google.firebase.appdistributioncodelab」を使用します。

アプリに google-services.json ファイルを追加する

パッケージ名を追加して [登録] を選択したら、次の手順に沿って google-services.json をアプリに追加します。

  1. [Download google-services.json] をクリックして、Firebase Android 構成ファイルを入手します。
  2. google-services.json ファイルをプロジェクトの app ディレクトリにコピーします。
  3. ファイルをダウンロードしたら、コンソールに表示される次の手順をスキップできます(build-android-start プロジェクトではすでに完了しています)。

Firebase アプリと一致するようにアプリケーション ID を更新する

  1. 左側のメニュー([プロジェクト] タブ)で、[Android] ビューになっていることを確認し、[Gradle Scripts] タブを見つけて、モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle.kts)を開きます。
  2. applicationId プロパティを Firebase アプリのアプリケーション ID に一致するように変更します。これは「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 でアプリにアクセスできるアカウントにログインすることでアラートを有効にします。このメソッドを呼び出すと、このメソッドにより次のシーケンスが実行されます。

  1. テスターがアラートを有効にしているか確認します。そうでない場合、このメソッドは、テスターに Google アカウントで App Distribution にログインするよう求める事前構築済みのダイアログを表示します。

アラートの有効化はテストデバイスで 1 回限り実行するプロセスであり、アプリがアップデートされても保持されます。アプリがアンインストールされるか、signOutTester メソッドが呼び出されるまでは、該当のテストデバイスでアラートは有効のままです。

  1. 対象のテスター向けの新しいインストール ビルドがあるかどうか確認します。
  2. 事前構築済みのアラートをテスターに表示して、最新リリースのダウンロードを促します。
  3. アップデートに進む前に、新しいビルドタイプを確認します。
  4. 新しいビルドが App Bundle(AAB)の場合、テスターは Play ストアにリダイレクトされ、そこでアップデート プロセスを完了します。
  5. 新しいビルドが 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 ファイルをアップロードします。

  1. Firebase コンソールの App Distribution ページを開きます。指示に従って Firebase プロジェクトを選択します。
  2. [リリース] ページで、配布するアプリをプルダウン メニューから選択します。

623460c3c8a82ce6.png

  1. [使ってみる] をクリックします。

bf503b25066ff4a4.png

  1. アプリの APK ファイルをコンソールにドラッグしてアップロードします。
  2. アップロードが完了したら、ビルドを受け取るテスター グループとテスターを指定します。(招待状を受け取るためのメールアドレスを追加してください)。次に、ビルドのリリースノートを追加します。テスター グループの作成について詳しくは、テスターを追加、削除するをご覧ください。

3343048f0930e84b.png

  1. [Distribute] をクリックして、テスターがビルドを利用できるようにします。

2be58fe195928bf9.png

Firebase コンソールで、アプリのリリースに追加したテスターを確認できるようになりました。

9935a41810344c61.png

メールアドレスを含めたので、Firebase App Distribution からアプリのテストに招待するメールが届きます。これで、最初のテスターになりました。テストデバイスでテスターとして設定するには、招待を承諾するの手順に沿って操作します。

招待を承諾する

まず、リリースのダウンロードとテストへの招待を承諾する必要があります。

  1. Android テストデバイスで、Firebase App Distribution から送信されたメールを開き、[使ってみる] をタップします。
  2. 表示された Firebase App Distribution テスター ウェブアプリで、Google アカウントでログインし、[招待を承諾] をタップします。テストに招待されたリリースが表示されます。

c18cb684f8e82ad6.png

テストデバイスからリリースをダウンロードする

AppDistribution Codelab アプリに移動すると、リリースをダウンロードできる状態になっていることがわかります。

5414d9a536f25ece.png

  1. [ダウンロード] をタップして、アプリをインストールして実行します。
  2. アプリを起動すると、新しいビルドアラートを有効にするかどうかを尋ねられます。[ON にする] をタップします。

b059e09acaa4779f.png

  1. テスター アカウントでログインします。

22e0b52f771c060d.png

アプリに戻ります。次回アプリを実行するときは、ログインしたりアラートを承認したりする必要はありません。

c9f33df16a2680d.png

テスターにアップデートを配布する

  1. モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で、versionName を「1.1」、versionCode を 2 に更新します。
  2. 通常の手順で APK をビルドします。APK はデバッグ鍵またはアプリ署名鍵を使用して署名する必要があります。
  3. Firebase コンソールでこの新しい APK をアップロードし、メールアドレスをテスターとして再度追加して、[配布] をクリックします。

2dfa702edfdce6b8.png

テストビルドのアラート

  1. アプリが開いている場合は、必ず閉じてください。
  2. アプリを再起動します。
  3. アプリを再起動すると、「新しいバージョンが利用可能です」というアラートが表示されます。

987e3d0ba4e56f84.png

  1. 最新バージョンを入手するには、[更新] をクリックします。
  2. メッセージが表示されたら、提供元不明のアプリのインストールを有効にするオプションを選択します。
  3. 次の画面で [インストール](または [更新])をクリックします。

a7c7cd15d60bc764.png

  1. これで完了です。組み込みのアラートを使用してアプリを更新できました。

7. テスターのログインをカスタマイズする

signInTester/signOutTester メソッドと isTesterSignedIn メソッドを使用すると、テスターのログイン エクスペリエンスをさらに柔軟にカスタマイズできるため、アプリのデザインに合わせることができます。

次の例では、テスターが Firebase App Distribution テスター アカウントにすでにログインしているかどうかを確認し、まだログインしていないテスターにのみログイン UI を表示するように選択できます。テスターがログインしたら、checkForUpdate を呼び出して、テスターが新しいビルドにアクセスできるかどうかを確認します。

onResumecheckForUpdate() 呼び出しをコメントアウトして、自動更新の確認を無効にしましょう。

MainActivity.kt

override fun onResume() {
        super.onResume()
        //checkForupdate()
    }

代わりに、updatebutton の OnClickListener に checkForUpdate() がすでに追加されています。

次に、ユーザーがログアウトしている場合はログインし、すでにログインしている場合はログアウトする 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 New Alerts Android SDK

次のステップ

詳細

質問がある場合

問題を報告する