App Distribution Gradle プラグインを使用して、App Distribution を Android ビルド プロセスに統合できます。プラグインを使用すると、アプリのbuild.gradle
ファイルでテスターとリリース ノートを指定でき、アプリのさまざまなビルド タイプとバリアントのディストリビューションを構成できます。
このガイドでは、App Distribution Gradle プラグインを使用して APK をテスターに配布する方法について説明します。
あなたが始める前に
まだ行っていない場合は、 Firebase を Android プロジェクトに追加します。
他の Firebase 製品を使用していない場合は、プロジェクトを作成してアプリを登録するだけです。ただし、今後追加の製品を使用する場合は、上記のリンク先のページのすべての手順を完了してください。
ステップ 1. Android プロジェクトをセットアップする
ルート レベル (プロジェクト レベル) のGradle ファイル (
または<project>/build.gradle
) で、ビルドスクリプトの依存関係として App Distribution Gradle プラグインを追加します。<project>/build.gradle.kts グルーヴィー
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath 'com.android.tools.build:gradle:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.2.0' } }
コトリン
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath("com.android.tools.build:gradle:7.2.0") // Make sure that you have the Google services Gradle plugin dependency classpath("com.google.gms:google-services:4.3.15") // Add the dependency for the App Distribution Gradle plugin classpath("com.google.firebase:firebase-appdistribution-gradle:3.2.0") } }
モジュール (アプリレベル) のGradle ファイル (通常は
または<project>/<app-module>/build.gradle
) で、App Distribution Gradle プラグインを追加します。<project>/<app-module>/build.gradle.kts グルーヴィー
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
コトリン
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
企業のプロキシまたはファイアウォールの内側にいる場合は、次のJava システム プロパティを追加して、App Distribution がディストリビューションを Firebase にアップロードできるようにします。
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
ステップ 2. Firebase で認証する
Gradle プラグインを使用する前に、まず次のいずれかの方法で Firebase プロジェクトを認証する必要があります。デフォルトでは、他の認証方法が使用されていない場合、Gradle プラグインは Firebase CLI から認証情報を探します。
サービス アカウントで認証すると、継続的インテグレーション (CI) システムでプラグインを柔軟に使用できます。サービス アカウント資格情報を提供するには、次の 2 つの方法があります。
- サービス アカウント キー ファイルを
build.gradle
に渡します。ビルド環境にサービス アカウント キー ファイルが既にある場合は、この方法が便利です。 - 環境変数
GOOGLE_APPLICATION_CREDENTIALS
がサービス アカウント キー ファイルを指すように設定します。別の Google サービス (Google Cloud など) 用に Application Default Credentials (ADC) が既に構成されている場合は、この方法をお勧めします。
サービス アカウント資格情報を使用して認証するには:
- Google Cloud Console でプロジェクトを選択し、新しいサービス アカウントを作成します。
- Firebase App Distribution 管理者の役割を追加します。
- 秘密の json キーを作成し、そのキーをビルド環境からアクセスできる場所に移動します。 Firebase プロジェクトの App Distribution への管理者アクセス権を付与するため、このファイルは安全な場所に保管してください。
- 2019 年 9 月 20 日以降にアプリを作成した場合は、この手順をスキップしてください。Google API コンソールで、 Firebase App Distribution API を有効にします。プロンプトが表示されたら、Firebase プロジェクトと同じ名前のプロジェクトを選択します。
サービス アカウントの資格情報を指定するか、見つけます。
- Gradle にサービス アカウント キーを渡すには、
build.gradle
ファイルでプロパティserviceCredentialsFile
を秘密鍵の JSON ファイルに設定します。 ADC で認証情報を見つけるには、環境変数
GOOGLE_APPLICATION_CREDENTIALS
を秘密鍵の JSON ファイルのパスに設定します。例:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
ADC による認証の詳細については、アプリケーションへの資格情報の提供を参照してください。
- Gradle にサービス アカウント キーを渡すには、
プロジェクトを認証する方法については、Firebase CLI を使用してログインするをご覧ください。
ステップ 3. ディストリビューション プロパティを構成する
モジュール (アプリレベル) のGradle ファイル (通常は
または
) で、少なくとも1 つのfirebaseAppDistribution
セクション。
たとえば、 release
ビルドをテスターに配布するには、次の手順に従います。
グルーヴィー
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
コトリン
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { release { firebaseAppDistribution { artifactType = "APK" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
ビルド タイプと製品フレーバーの App Distribution を構成できます。
たとえば、 debug
ビルドとrelease
ビルドを「デモ」および「フル」製品フレーバーで配布するには、次の手順に従います。
グルーヴィー
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
コトリン
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
次のパラメーターを使用して、配布を構成します。
アプリ配布のビルド パラメータ | |
---|---|
appId | アプリの Firebase アプリ ID。 Google Services Gradle プラグインがインストールされていない場合にのみ必要です。アプリ ID は、 appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | サービス アカウントの秘密鍵の JSON ファイルへのパス。サービス アカウント認証を使用する場合にのみ必要です。 |
artifactType | アプリのファイルの種類を指定します。 |
artifactPath | アップロードする APK または AAB ファイルへの絶対パス。 |
releaseNotes またはreleaseNotesFile | このビルドのリリース ノート。 リリース ノートを直接指定するか、プレーン テキスト ファイルへのパスを指定できます。 |
testers またはtestersFile | ビルドを配布するテスターの電子メール アドレス。 テスターを電子メール アドレスのコンマ区切りリストとして指定できます。 testers="ali@example.com, bri@example.com, cal@example.com" または、電子メール アドレスのコンマ区切りリストを含むファイルへのパスを指定できます。 testersFile="/path/to/testers.txt" |
groups またはgroupsFile | ビルドを配布するテスター グループ (「テスターの管理」を参照)。グループは次を使用して指定されます グループ エイリアスのコンマ区切りリストとしてグループを指定できます。 groups="qa-team, android-testers" または、グループ エイリアスのカンマ区切りリストを含むファイルへのパスを指定できます。 groupsFile="/path/to/tester-groups.txt" |
stacktrace | ユーザー例外のスタック トレースを出力します。これは、問題をデバッグするときに役立ちます。 |
ステップ 4. アプリをテスターに配布する
最後に、テスト アプリをパッケージ化してテスターを招待するには、ターゲットの
BUILD-VARIANT
とappDistributionUpload BUILD-VARIANT
をプロジェクトの Gradle ラッパーでビルドします。ここで、 BUILD-VARIANTは、前の手順で構成したオプションの製品フレーバーとビルド タイプです。製品フレーバーの詳細については、ビルド バリアントの構成を参照してください。たとえば、
release
ビルド バリアントを使用してアプリを配布するには、次のコマンドを実行します。./gradlew assembleRelease appDistributionUploadRelease
または、 Google アカウントで認証し、Gradle ビルド ファイルで資格情報を提供しなかった場合は、
FIREBASE_TOKEN
変数を含めます。export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
--<property-name>=<property-value>
の形式でコマンドライン引数を渡すことにより、build.gradle
ファイルに設定された値をオーバーライドすることもできます。例えば:デバッグ ビルドを App Distribution にアップロードするには:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
追加のテスターを招待するか、Firebase プロジェクトから既存のテスターを削除するには:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
テスターが Firebase プロジェクトに追加されたら、それらを個々のリリースに追加できます。削除されたテスターは、プロジェクトのリリースにアクセスできなくなりますが、しばらくの間は引き続きリリースにアクセスできる可能性があります。
--emails の代わりに
--emails
--file="/path/to/testers.txt"
を使用してテスターを指定することもできます。appDistributionAddTesters
およびappDistributionRemoveTesters
タスクは、次の引数も受け入れます。projectNumber
: Firebase プロジェクト番号。serviceCredentialsFile
: Google サービス資格情報ファイルへのパス。これは、アップロード アクションで使用される引数と同じです。
Gradle プラグインは、リリースのアップロード後に次のリンクを出力します。これらのリンクは、バイナリを管理し、テスターや他の開発者が適切なリリースを使用できるようにするのに役立ちます。
-
firebase_console_uri
- 単一のリリースを表示する Firebase コンソールへのリンク。このリンクを組織内の他の開発者と共有できます。 -
testing_uri
- テスター エクスペリエンス (Android ネイティブ アプリ) のリリースへのリンク。これにより、テスターはリリース ノートを表示し、デバイスにアプリをインストールできます。リンクを使用するには、テスターがリリースにアクセスする必要があります。 -
binary_download_uri
- アプリのバイナリ (APK または AAB ファイル) を直接ダウンロードしてインストールする署名付きリンク。リンクは 1 時間後に期限切れになります。
ビルドを配布すると、Firebase コンソールの App Distribution ダッシュボードで 150 日間 (5 か月) 利用できるようになります。ビルドの有効期限が切れてから 30 日になると、コンソールとテスターのテスト デバイスのビルド リストの両方に有効期限の通知が表示されます。
アプリのテストに招待されていないテスターは、開始するための電子メールの招待状を受け取り、既存のテスターは、新しいビルドをテストする準備ができたことを知らせる電子メール通知を受け取ります (テスト アプリのインストール方法については、テスターのセットアップ ガイドを参照してください)。 Firebase コンソールで、各テスターのステータス (招待を受け入れたかどうか、アプリをダウンロードしたかどうか) を監視できます。
テスターは、アプリの有効期限が切れる前に、アプリをテストするための招待を 30 日間受け入れる必要があります。招待の有効期限が切れてから 5 日になると、リリースのテスターの横にある Firebase コンソールに有効期限通知が表示されます。招待状は、テスター行のドロップダウン メニューを使用して再送信することで更新できます。
次のステップ
Android App Bundle Codelabにアクセスして、App Bundle リリースを段階的に配布する方法を学習してください。
CI/CD を使用して Android アプリを QA テスターに配布するためのベスト プラクティスを学びます。