Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

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

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

このガイドでは、App Distribution Gradle プラグインを使用して APK をテスターに​​配布する方法について説明します。

あなたが始める前に

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

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

ステップ 1. Android プロジェクトをセットアップする

  1. ルート レベル (プロジェクト レベル) のGradle ファイル ( <project>/build.gradleまたは<project>/build.gradle.kts ) で、ビルドスクリプトの依存関係として App Distribution Gradle プラグインを追加します。

    グルーヴィー

    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.14'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
      }
    }
    

    コトリン

    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.14")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:3.1.1")
      }
    }
    
  2. モジュール (アプリレベル) のGradle ファイル (通常は<project>/<app-module>/build.gradleまたは<project>/<app-module>/build.gradle.kts ) で、App Distribution Gradle プラグインを追加します。

    グルーヴィー

    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")
    }
    
  3. 企業のプロキシまたはファイアウォールの内側にいる場合は、次のJava システム プロパティを追加して、App Distribution がディストリビューションを Firebase にアップロードできるようにします。

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

ステップ 2. Firebase で認証する

Gradle プラグインを使用する前に、まず次のいずれかの方法で Firebase プロジェクトを認証する必要があります。デフォルトでは、他の認証方法が使用されていない場合、Gradle プラグインは Firebase CLI から認証情報を探します。

ステップ 3. ディストリビューション プロパティを構成する

モジュール (アプリレベル) のGradle ファイル (通常は<project>/<app-module>/build.gradleまたは<project>/<app-module>/build.gradle.kts ) で、少なくとも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 は、 google-services.jsonファイルまたは Firebase コンソールの[一般設定] ページで確認できます。 build.gradleファイルの値は、 google-servicesプラグインから出力された値をオーバーライドします。

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

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

artifactType

アプリのファイルの種類を指定します。 "AAB"または"APK"に設定できます。

artifactPath

アップロードする APK または AAB ファイルへの絶対パス。

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"
stacktrace

ユーザー例外のスタック トレースを出力します。これは、問題をデバッグするときに役立ちます。

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

  1. 最後に、テスト アプリをパッケージ化してテスターを招待するには、ターゲットのBUILD-VARIANTappDistributionUpload 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
    
  2. --<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 サービス資格情報ファイルへのパス。これは、アップロード アクションで使用される引数と同じです。

ビルドを配布すると、Firebase コンソールの App Distribution ダッシュボードで 150 日間 (5 か月) 利用できるようになります。ビルドの有効期限が切れてから 30 日になると、コンソールとテスターのテスト デバイスのビルド リストの両方に有効期限の通知が表示されます。

アプリのテストに招待されていないテスターは、開始するための電子メールの招待状を受け取り、既存のテスターは、新しいビルドをテストする準備ができたことを知らせる電子メール通知を受け取ります (テスト アプリのインストール方法については、テスターのセットアップ ガイドを参照してください)。 Firebase コンソールで、各テスターのステータス (招待を受け入れたかどうか、アプリをダウンロードしたかどうか) を監視できます。

テスターは、アプリの有効期限が切れる前に、アプリをテストするための招待を 30 日間受け入れる必要があります。招待の有効期限が切れてから 5 日になると、リリースのテスターの横にある Firebase コンソールに有効期限通知が表示されます。招待状は、テスター行のドロップダウン メニューを使用して再送信することで更新できます。

次のステップ