Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Distribusikan aplikasi Android ke penguji menggunakan Gradle

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Anda dapat mengintegrasikan App Distribution ke dalam proses build Android menggunakan plugin App Distribution Gradle. Plugin ini memungkinkan Anda menentukan penguji dan catatan rilis di file build.gradle aplikasi Anda, memungkinkan Anda mengonfigurasi distribusi untuk tipe dan varian build yang berbeda dari aplikasi Anda.

Panduan ini menjelaskan cara mendistribusikan APK ke penguji menggunakan plugin App Distribution Gradle.

Sebelum kamu memulai

Jika Anda belum melakukannya, tambahkan Firebase ke proyek Android Anda .

Jika Anda tidak menggunakan produk Firebase lainnya, Anda hanya perlu membuat proyek dan mendaftarkan aplikasi Anda. Namun, jika Anda memutuskan untuk menggunakan produk tambahan di masa mendatang, pastikan untuk menyelesaikan semua langkah di halaman yang ditautkan di atas.

Langkah 1. Siapkan proyek Android Anda

  1. Di file Gradle level root (level proyek) Anda ( <project>/build.gradle atau <project>/build.gradle.kts ), tambahkan plugin App Distribution Gradle sebagai dependensi buildscript:

    Asyik

    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'
      }
    }
    

    Kotlin

    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")
      }
    }
    
  2. Dalam file Gradle modul (level aplikasi) Anda (biasanya <project>/<app-module>/build.gradle atau <project>/<app-module>/build.gradle.kts ), tambahkan plugin App Distribution Gradle:

    Asyik

    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'
    }
    

    Kotlin

    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. Jika Anda menggunakan proxy atau firewall perusahaan, tambahkan properti sistem Java berikut yang memungkinkan App Distribution mengunggah distribusi Anda ke Firebase:

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

Langkah 2. Autentikasi dengan Firebase

Sebelum dapat menggunakan plugin Gradle, Anda harus mengautentikasi terlebih dahulu dengan proyek Firebase melalui salah satu cara berikut. Secara default, plugin Gradle mencari kredensial dari Firebase CLI jika tidak ada metode autentikasi lain yang digunakan.

Langkah 3. Konfigurasikan properti distribusi Anda

Dalam file Gradle modul (level aplikasi) Anda (biasanya <project>/<app-module>/build.gradle atau <project>/<app-module>/build.gradle.kts ), konfigurasikan App Distribution dengan menambahkan setidaknya satu bagian firebaseAppDistribution .

Misalnya, untuk mendistribusikan build release ke penguji, ikuti petunjuk berikut::

Asyik

android {

  // ...

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

  // ...
}

Kotlin

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

  // ...
}

Anda dapat mengonfigurasi App Distribution untuk jenis build dan ragam produk .

Misalnya, untuk mendistribusikan build debug dan release dalam ragam produk "demo" dan "lengkap", ikuti petunjuk berikut:

Asyik

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

  // ...
}

Kotlin

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

  // ...
}

Gunakan parameter berikut untuk mengonfigurasi distribusi:

Parameter Pembuatan Distribusi Aplikasi
appId

ID Aplikasi Firebase aplikasi Anda. Diperlukan hanya jika Anda belum memasang plugin Google Services Gradle. Anda dapat menemukan App ID di file google-services.json atau di Firebase console pada halaman General Settings . Nilai dalam file build.gradle Anda menggantikan keluaran nilai dari plugin google-services .

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

Jalur ke file JSON kunci pribadi akun layanan Anda. Diperlukan hanya jika Anda menggunakan autentikasi akun layanan.

artifactType

Menentukan jenis file aplikasi Anda. Dapat disetel ke "AAB" atau "APK" .

artifactPath

Jalur absolut ke file APK atau AAB yang ingin Anda unggah.

releaseNotes atau releaseNotesFile

Catatan rilis untuk bangunan ini.

Anda dapat menentukan catatan rilis secara langsung atau jalur ke file teks biasa.

testers atau testersFile

Alamat email penguji tempat Anda ingin mendistribusikan build.

Anda dapat menentukan penguji sebagai daftar alamat email yang dipisahkan koma:

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

Atau, Anda dapat menentukan jalur ke file yang berisi daftar alamat email yang dipisahkan koma:

testersFile="/path/to/testers.txt"
groups atau groupsFile

Grup penguji tempat Anda ingin mendistribusikan build (lihat Kelola penguji ). Grup ditentukan menggunakan alias kelompok , yang dapat Anda temukan di tab Testers di konsol Firebase App Distribution.

Anda dapat menentukan grup sebagai daftar alias grup yang dipisahkan koma:

groups="qa-team, android-testers"

Atau, Anda dapat menentukan jalur ke file yang berisi daftar alias grup yang dipisahkan koma:

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

Mencetak stacktrace untuk pengecualian pengguna. Ini berguna saat men-debug masalah.

Langkah 4. Distribusikan aplikasi Anda ke penguji

  1. Terakhir, untuk mengemas aplikasi pengujian Anda dan mengundang penguji, buat target BUILD-VARIANT dan appDistributionUpload BUILD-VARIANT dengan pembungkus Gradle proyek Anda, dengan BUILD-VARIANT adalah ragam produk opsional dan jenis build yang Anda konfigurasikan di langkah sebelumnya. Untuk informasi selengkapnya tentang ragam produk, lihat Mengonfigurasi varian versi .

    Misalnya, untuk mendistribusikan aplikasi Anda menggunakan varian build release , jalankan perintah berikut:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    Atau, jika Anda mengautentikasi dengan Akun Google dan tidak memberikan kredensial dalam file build Gradle, sertakan variabel FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. Anda juga bisa mengganti nilai yang ditetapkan dalam file build.gradle dengan meneruskan argumen baris perintah dalam bentuk --<property-name>=<property-value> . Sebagai contoh:

    • Untuk mengupload build debug ke App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Untuk mengundang penguji tambahan atau menghapus penguji yang ada dari project Firebase Anda:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      Setelah penguji ditambahkan ke proyek Firebase, Anda dapat menambahkannya ke setiap rilis. Penguji yang dihapus tidak akan lagi memiliki akses ke rilis di project Anda, tetapi masih dapat mempertahankan akses ke rilis Anda untuk jangka waktu tertentu.

    Anda juga dapat menentukan penguji menggunakan --file="/path/to/testers.txt" alih-alih --emails .

    Tugas appDistributionAddTesters dan appDistributionRemoveTesters juga menerima argumen berikut:

    • projectNumber : Nomor proyek Firebase Anda.

    • serviceCredentialsFile : Jalur ke file kredensial layanan Google Anda. Ini adalah argumen yang sama yang digunakan oleh tindakan upload.

Plugin Gradle mengeluarkan tautan berikut setelah unggahan rilis. Tautan ini membantu Anda mengelola binari dan memastikan bahwa penguji dan pengembang lain memiliki rilis yang tepat:

  • firebase_console_uri - Tautan ke konsol Firebase yang menampilkan rilis tunggal. Anda dapat membagikan tautan ini dengan pengembang lain di organisasi Anda.
  • testing_uri - Tautan ke rilis dalam pengalaman penguji (aplikasi asli Android) yang memungkinkan penguji melihat catatan rilis dan menginstal aplikasi ke perangkat mereka. Penguji memerlukan akses ke rilis untuk menggunakan tautan.
  • binary_download_uri - Tautan bertanda tangan yang langsung mengunduh dan menginstal biner aplikasi (file APK atau AAB). Tautan kedaluwarsa setelah satu jam.

Setelah Anda mendistribusikan build, build tersebut akan tersedia di dasbor App Distribution dari Firebase console selama 150 hari (lima bulan). Saat build 30 hari dari kedaluwarsa, pemberitahuan kedaluwarsa muncul di konsol dan daftar build penguji Anda di perangkat pengujian mereka.

Penguji yang belum diundang untuk menguji aplikasi menerima undangan email untuk memulai, dan penguji yang sudah ada menerima pemberitahuan email bahwa build baru siap untuk diuji (baca panduan penyiapan penguji untuk petunjuk tentang cara menginstal aplikasi pengujian). Anda dapat memantau status setiap penguji-apakah mereka menerima undangan dan mengunduh aplikasi-di konsol Firebase.

Penguji memiliki waktu 30 hari untuk menerima undangan untuk menguji aplikasi sebelum kedaluwarsa. Saat undangan 5 hari dari kedaluwarsa, pemberitahuan kedaluwarsa muncul di konsol Firebase di samping penguji pada rilis. Undangan dapat diperbarui dengan mengirimkannya kembali menggunakan menu tarik-turun di baris penguji.

Langkah selanjutnya