コンソールへ移動

Gradle を使用して Android アプリをテスターに配布する

App Distribution Gradle プラグインを使用すると、App Distribution を Android ビルドプロセスに統合できます。このプラグインを使用すると、アプリの build.gradle ファイルでテスターとリリースノートを指定して、アプリのさまざまなビルドタイプやバリアントを配布できます。

始める前に

まだ Firebase を Android プロジェクトに追加していない場合は追加します。

他の Firebase プロダクトを使用していない場合は、プロジェクトを作成してアプリを登録するだけでかまいません。ただし、今後追加のプロダクトを使用する場合は、上記のリンク先のページの手順をすべて完了してください。

1. Android プロジェクトを設定する

モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で、Android プラグインの下に App Distribution プラグインを含めます。

apply plugin: 'com.android.application'
// ...

apply plugin: 'com.google.firebase.appdistribution'
// ...

buildscript {
    repositories {
        google()
    }
    dependencies {
        classpath 'com.google.firebase:firebase-appdistribution-gradle:1.1.0'
    }
}

2. Firebase で認証する

Gradle プラグインを使用する前に、Firebase プロジェクトで認証する必要があります。これには次の 3 つの方法があります。

Google アカウントで認証を行う

  1. 次のコマンドを実行します。
    ./gradlew appDistributionLogin
    
    このコマンドにより、認証用のリンクが生成されます。
  2. このリンクをブラウザで開きます。

  3. プロンプトが表示されたら、Google アカウントにログインし、Firebase プロジェクトにアクセスするための権限を付与します。Gradle コマンドが更新トークンを生成します。App Distribution プラグインは、このトークンを使用して Firebase の認証を行います。

  4. 環境変数 FIREBASE_TOKEN に、前の手順で生成したトークンを設定します。
    export FIREBASE_TOKEN=<token>
    

サービス アカウントを使用して認証する

サービス アカウントで認証すると、継続的インテグレーション(CI)システムでプラグインを柔軟に使用できます。サービス アカウントの認証情報を指定するには、次の 2 つの方法があります。

  • サービス アカウントのキーファイルを build.gradle に渡します。この方法は、ビルド環境にすでにサービス アカウントのキーファイルがある場合に便利です。
  • サービス アカウントのキーファイルを指すように環境変数 GOOGLE_APPLICATION_CREDENTIALS を設定します。この方法は、すでに他の Google サービス(Google Cloud Platform など)で ADC を構成している場合に便利です。

サービス アカウントの認証情報を使用して認証するには:

  1. Google Cloud Platform Console でプロジェクトを選択し、新しいサービス アカウントを作成します。
  2. Firebase Quality 管理者の役割を追加します。
  3. プライベート json キーを作成し、ビルド環境からアクセスできる場所にキーを移動します。このファイルは安全な場所に保管してください。管理者が Firebase プロジェクトにアクセスするために、このファイルが必要になります。
  4. (2019 年 9 月 20 日以降にアプリを作成した場合はこの手順を省略します)Google API Console で、Firebase App Distribution API を有効にします。プロンプトが表示されたら、Firebase プロジェクトと同じ名前のプロジェクトを選択します。
  5. サービス アカウントの認証情報を指定するか、またはその場所を指定します。

    1. サービス アカウント キーを Gradle に渡すには、build.gradle ファイル内のプロパティ serviceCredentialsFile の値をプライベート キー JSON ファイルに設定します。
    2. ADC で認証情報の場所を指定するには、環境変数 GOOGLE_APPLICATION_CREDENTIALS を設定します。[PATH] をプライベート キー JSON ファイルのパスに置き換え、[FILE_NAME] をファイル名に置き換えます。次に例を示します。

       export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
      

      ADC での認証の詳細については、アプリケーションの認証情報を指定するをご覧ください。

3. 配布プロパティを構成する

  1. app/build.gradle ファイル内に firebaseAppDistribution セクションを 1 つ以上追加して App Distribution を構成します。ビルドタイプとプロダクト フレーバーを通じて App Distribution を構成できます。たとえば、release ビルドをテスターに配布するには、次のようにします。

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    

    また、「デモ版」と「完全版」のプロダクト フレーバーがあり、それらの 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"
              }
          }
        }
    
        // ...
    }
    

次のパラメータを使用して、App Distribution を構成します。

App Distribution ビルド パラメータ
appId

アプリの Firebase アプリ ID。Google サービスの gradle プラグインがインストールされていない場合にのみ必須です。アプリ ID は、google-services.json ファイルまたは Firebase コンソールの全般設定ページで確認できます。build.gradle ファイル内の値は、google-services gradle プラグインの出力値よりも優先されます。

serviceCredentialsFile

サービス アカウントの秘密鍵の JSON ファイルへのパス。サービス アカウント認証を使用する場合にのみ必要です。

releaseNotes または releaseNotesFile

このビルドのリリースノート。

リリースノートを直接指定することも、書式なしテキスト ファイルのパスを指定することもできます。

testers または testersFile

ビルドを配布するテスターのメールアドレス。

テスターは、メールアドレスのカンマ区切りのリストとして指定できます。


testers="ali@example.com, bri@example.com, cal@example.com"

メールアドレスのカンマ区切りのリストを含むファイルへのパスを指定することもできます。


testersFile="/path/to/testers.txt"
groups または groupsFile

ビルドの配布先のテスター グループ(テスターを管理するをご覧ください)。グループはグループ エイリアスを使用して指定します。グループ エイリアスは、Firebase App Distribution コンソールの [テスター] タブにあります。

グループは、グループ エイリアスのカンマ区切りのリストとして指定できます。


groups="qa-team, android-testers"

グループ エイリアスのカンマ区切りのリストを含むファイルへのパスを指定することもできます。


groupsFile="/path/to/tester-groups.txt"

4. テスターにアプリを配布する

最後にテストアプリをパッケージ化し、テスターを招待します。プロジェクトの Gradle ラッパーを使用して、assembleBUILD-VARIANTappDistributionUploadBUILD-VARIANT のターゲットをビルドします。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

アプリのテストに招待されていないテスターには招待メールが届きます。既存のテスターには、新しいビルドの準備ができていることを知らせるメールが届きます。

プロダクト フレーバーの詳細については、ビルド バリアントの設定をご覧ください。