このドキュメントでは、Firebase App Distribution を使用して、Android のプレリリース テスト ワークフローを持続可能にし、CI/CD 環境で繰り返し使用できるようにするためのベスト プラクティスを紹介します。ソリューションには Gradle と fastlane が含まれますが、さらに柔軟性を高めるために、Firebase コンソール、Firebase CLI、パブリック Firebase App Distribution API から利用できるソリューションも含まれています。また、最適なエクスペリエンスを事前に計画できるように、リリースとテスターの制限についても説明します。
Apple プラットフォームも使用している場合は、「 CI/CD と fastlane を使用して Apple アプリを QA テスターに配布するためのベスト プラクティス」を参照してください。
あなたが始める前に
このドキュメントのベスト プラクティスを実装する前に、各アプリの Firebase コンソールでApp Distribution を有効にしてください。 App Distribution を有効にしていない場合は、404 エラーが発生します。
App Distribution を有効にするには、次の手順に従います。
- Firebase コンソールで [ App Distribution] ページを開きます。
- Android アプリを選択します。
- [はじめに] をクリックします。
Android アプリ バンドル (AAB) が最も一般的な Android パッケージ形式になりつつあることを考えると、 Google Play にリンクして AAB をテスターに配布する機能をセットアップすることをお勧めします。
CI/CD パイプラインを使用してプレリリース テスト ワークフローを自動化する
アプリのビルドとテスターへのリリースを自動化する必要があり、CI/CD を使用している場合は、 fastlaneまたはGradleを使用することをお勧めします。もう 1 つのオプションは、さまざまな Firebase プロダクトにアクセスできるFirebase CLIを使用することです。
ファストレーンを使う
iOS および Android アプリのビルドとリリースを自動化するオープン ソース ツールである fastlane を使用して、App Distribution を CI/CD パイプラインに統合します。最新のリリースをビルドしてテスターに自動的に配布することで、テスターがアプリの最新のテスト バージョンを常に利用できるようにします。
App Distribution を fastlane と統合する方法については、「fastlaneを使用して Android アプリをテスターに配布する」を参照してください。
Gradle を使用する
Gradle を使用して、App Distribution Gradle プラグインを使用して App Distribution を Android ビルド プロセスに統合します。プラグインを使用すると、アプリのbuild.gradle
ファイルでテスターとリリース ノートを指定できます。これにより、アプリのさまざまなビルド タイプとバリアントのディストリビューションを構成できます。
App Distribution を Gradle と統合する方法については、「Gradleを使用して Android アプリをテスターに配布する」を参照してください。
Firebase CLI を使用する
App Distribution が提供する Firebase CLI ツールを使用して、ビルドをテスターにプログラムで配布します。ビルドのテスターとリリース ノートを指定できます。
アプリの Firebase アプリ ID を指定し、必要に応じてリリース ノートとテスターのメールを含むファイルを追加して、最新の Android ビルドを配布します。
firebase appdistribution:distribute test.aab \
--app 1:1234567890:android:0a1b2c3d4e5f67890 \
--release-notes "Bug fixes and improvements" --testers-file testers.txt
Firebase CLI を使用してビルドを自動化する方法について詳しくは、Firebase CLI を使用してテスターに Android アプリを配布するをご覧ください。
サービス資格情報を使用して認証する
サービス アカウントで App Distribution fastlane プラグイン、 Gradle プラグイン、または Firebase CLI を使用します。サービス アカウントは、(ユーザーではなく) アプリケーションを表す Google アカウントの一種です。 CI システムでは、サービス アカウントを使用して App Distribution ワークロードを実行できます。詳細については、サービス アカウントによる認証を参照してください。
Workload Identity フェデレーションを使用している場合は、サービス アカウント キーの代わりに資格情報構成ファイルを生成して使用できます。
リリース制限に注意してください
App Distribution は、アプリごとに最大 1,000 のリリースをサポートします。つまり、リリース制限を超えると、App Distribution は制限を超えた最も古いリリースを自動的に削除します。リリース制限を管理する方法については、「アプリのリリースはいつまで利用できますか?」を参照してください。
同じテスターのセットを複数のリリースに追加する
リリースに多数のテスターを追加する場合は、App Distribution の一括テスター管理機能を使用してください。
グループを使用して、同じテスターを複数のリリースに追加することをお勧めします。グループはアクセス制御リストとして機能します。グループからテスターを削除すると、テスターはそのグループに配布されたすべてのリリースにアクセスできなくなります。詳細については、テスターをグループに追加およびグループから削除する を参照してください。
管理するテスターが多数いる場合は、Firebase コンソールを使用してテスターを一括で追加および削除できます。テスターの追加と削除を自動化するには、 Firebase CLI 、 fastlane 、 Gradle 、またはパブリック Firebase App Distribution API を使用します。
テスターの制限に注意してください
App Distribution は、Firebase プロジェクトまたは App Distribution グループに追加できるテスターの数を制限します。これらの制限を超えると、追加のテスターにアプリを配布できなくなります。テスターの制限について詳しくは、「アプリにテスターを追加する際に制限はありますか?」を参照してください。
潜在的なテスターがテストのために自己登録できるようにする
アプリをより多くのテスターに配布しやすくするために、招待リンクを使用することをお勧めします。招待リンクは、テスターが電子メール アドレスを入力してアプリのテストにサインアップできる一意の URL です。ユーザーが自分自身をアプリ テスターのリストに追加できるようにすることは、内部テスト ベースを増やすためのシームレスな方法です。
招待リンクの使用例には、企業のドッグフード プログラム、大規模な QA チームを持つ組織、および個々のクライアントがテスター アクセスを制御できるようにしたい開発者グループが含まれます。
グループの招待リンクを作成することをお勧めします。招待リンクを使用してサインアップしたテスターは、後続のリリースに自動的に追加されます。
詳細については、招待リンクを作成する および グループからテスターを追加および削除する を参照してください。
テスターが関心のあるバージョンをテストしていることを確認してください
新しいバージョンがアップロードされると、テスターにメールで通知されます。この通知を補足するために、次の機能 (リリース リンクとアプリ内アラート) を使用して、関心のある特定のアプリ バージョンをテスターがテストしていることを確認できます。
- リリース リンク:特定のバージョンをテスターと共有する場合は、この機能を使用します。リリース リンクの使用方法については、Firebase コンソールを使用して Android アプリをテスターに配布するをご覧ください。これらのリンクは、ビルド自動化ツールで使用するFirebase 、 fastlane 、およびGradleコマンドライン (CLI) ツールでも利用できます。
- アプリ内アラート:テスターがアプリの最新バージョンをテストしていることを確認する場合は、これらのアラートを使用します。 Firebase App Distribution Android SDK を統合することで、アプリの新しいビルドが利用可能になったときに、アプリ内で直接テスターにアラートを表示できます。アプリ内アラートを追加する方法については、新しいビルドについてテスターに通知する を参照してください。
退職したテスターのアクセス権を自動的に削除する
CI/CD の社内テスト フローが稼働したら、退職者が社内ビルドにアクセスできないようにする必要があります。ビルドへのテスター アクセスの管理を支援するために、App Distribution には次のオプションが用意されています。
- fastlane: Fastfile ファイルを使用するか、fastlane アクションを直接実行します。詳しくは、 fastlane を使用して Android アプリをテスターに配布するをご覧ください。
- Firebase CLI:
firebase appdistribution:testers:remove
アクションを使用します。詳しくは、Firebase CLI を使用してテスターに Android アプリを配布するをご覧ください。 - Gradle: Gradle を使用してテスターを削除する場合は、
build.gradle
ファイルでappDistributionRemoveTesters
に引数
および-- PROJECT_NUMBER
を渡します。詳細については、 Gradle を使用して Android アプリをテスターに配布する を参照してください。-- EMAILS - Public Firebase App Distribution API :
testers.batchRemove
エンドポイントを使用します。