Beri tahu penguji tentang build baru

Firebase App Distribution iOS dan Android SDK opsional memungkinkan Anda menampilkan lansiran dalam aplikasi kepada penguji saat build baru aplikasi Anda tersedia untuk dipasang. Panduan ini menjelaskan cara menggunakan App Distribution iOS dan Android SDK untuk membuat dan menyesuaikan lansiran build baru untuk penguji Anda.

Sebelum kamu memulai

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

Langkah 1 : Aktifkan API Penguji Distribusi Aplikasi

  1. Pilih proyek Anda di Google Cloud Console .

  2. Di bawah Firebase App Testers API, klik Aktifkan .

Langkah 2 : Tambahkan Distribusi Aplikasi ke aplikasi Anda

SDK Android Distribusi Aplikasi terdiri dari dua pustaka:

  • firebase-appdistribution-api - Pustaka khusus API, yang dapat Anda sertakan di semua varian build .
  • firebase-appdistribution - Implementasi SDK lengkap (opsional).

Pustaka khusus API memungkinkan kode Anda melakukan panggilan ke SDK. Panggilan tidak akan berpengaruh jika implementasi SDK lengkap tidak ada.

Deklarasikan dependensi untuk App Distribution Android SDK di modul Anda (tingkat aplikasi) file Gradle (biasanya app/build.gradle ). Untuk menghindari penyertaan fungsionalitas update mandiri implementasi SDK lengkap di build Play Anda, tambahkan dependensi library khusus API ke semua varian build .Hanya tambahkan implementasi SDK lengkap ke varian yang ditujukan khusus untuk pengujian pra-rilis:

Java

dependencies {
    // ADD the API-only library to all variants
    implementation 'com.google.firebase:firebase-appdistribution-api:16.0.0-beta03'

    // ADD the full SDK implementation to the "beta" variant only (example)
    betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta03'
}

Kotlin+KTX

dependencies {
    // ADD the API-only library to all variants
    implementation 'com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta03'

    // ADD the full SDK implementation to the "beta" variant only (example)
    betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta03'
}

Langkah 3 : Konfigurasikan peringatan dalam aplikasi

App Distribution Android SDK menyediakan cara berikut untuk menyiapkan lansiran build dalam aplikasi untuk penguji Anda:

  • Konfigurasi lansiran dasar yang dilengkapi dengan pembaruan aplikasi bawaan dan dialog masuk untuk ditampilkan kepada penguji.
  • Konfigurasi lansiran lanjutan yang memungkinkan Anda menyesuaikan antarmuka pengguna Anda sendiri.

Jika Anda menggunakan Android SDK App Distribution untuk pertama kalinya, sebaiknya gunakan Konfigurasi Dasar .

Konfigurasi dasar

Gunakan updateIfNewReleaseAvailable untuk menampilkan dialog aktifkan lansiran yang sudah dibuat sebelumnya kepada penguji yang belum mengaktifkan lansiran, lalu periksa apakah build baru tersedia. Saat dipanggil, metode memberlakukan urutan berikut:

  1. Memeriksa apakah penguji telah mengaktifkan peringatan. Jika penguji belum mengaktifkan lansiran, metode ini akan meminta penguji untuk masuk ke App Distribution dengan akun Google mereka.

  2. Memeriksa build yang baru tersedia untuk dipasang oleh penguji.

  3. Menampilkan peringatan yang dibuat sebelumnya yang meminta penguji untuk memperbarui.

  4. Jika build baru adalah Android App Bundle (AAB), mengalihkan penguji ke Google Play untuk menyelesaikan proses update.

    Jika build baru adalah aplikasi Android PacKage (APK), SDK akan mendownload build baru di latar belakang dan meminta penguji untuk menginstal saat download selesai. SDK mengirimkan pemberitahuan kemajuan unduhan kepada pengguna menggunakan NotificationManager . Anda juga dapat menambahkan indikator kemajuan Anda sendiri dengan melampirkan handler onProgressUpdate ke tugas updateIfNewReleaseAvailable .

Anda dapat memanggil updateIfNewReleaseAvailable kapan saja di aplikasi Anda. Misalnya, Anda dapat memanggil updateIfNewReleaseAvailable selama metode onResume dari aktivitas utama aplikasi.

Contoh berikut memeriksa apakah penguji mengaktifkan peringatan dan memiliki akses ke build baru. Jika kondisi ini terpenuhi, dialog akan ditampilkan saat build tersedia untuk diinstal:

Java

// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
firebaseAppDistribution.updateIfNewReleaseAvailable()
    .addOnProgressListener(updateProgress -> {
      // (Optional) Implement custom progress updates in addition to
      // automatic NotificationManager updates.
    })
    .addOnFailureListener(e -> {
      // (Optional) Handle errors.
      if (e instanceof FirebaseAppDistributionException) {
        switch (((FirebaseAppDistributionException)e).getErrorCode()) {
          case NOT_IMPLEMENTED:
            // SDK did nothing. This is expected when building for Play.
            break;
          default:
            // Handle other errors.
            break;
        }
      }
    });

Kotlin+KTX

// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
    .addOnProgressListener { updateProgress ->
      // (Optional) Implement custom progress updates in addition to
      // automatic NotificationManager updates.
    }
    .addOnFailureListener { e ->
      // (Optional) Handle errors.
      if (e is FirebaseAppDistributionException) {
        when (e.errorCode) {
          Status.NOT_IMPLEMENTED -> {
            // SDK did nothing. This is expected when building for Play.
          }
          else -> {
            // Handle other errors.
          }
        }
      }
    }

Konfigurasi lanjutan

Konfigurasi masuk lanjutan

Metode signInTester dan isTesterSignedIn memberi Anda lebih banyak fleksibilitas untuk menyesuaikan pengalaman masuk penguji, sehingga pengalaman penguji dapat lebih cocok dengan tampilan dan nuansa aplikasi Anda.

Contoh berikut memeriksa apakah penguji telah masuk ke akun penguji App Distribution mereka. Ini memungkinkan Anda memilih untuk menampilkan antarmuka pengguna (UI) masuk hanya kepada penguji yang belum masuk. Setelah penguji masuk, Anda dapat memanggil updateIfNewReleaseAvailable untuk memeriksa apakah penguji memiliki akses ke build baru.

Java

// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn()) {
    // Start your sign-in UI here.
}

// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn()) {
    firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener( e -> {
        // Handle failed update.
    });
}

Kotlin+KTX

// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn) {
    // Start your sign-in UI here.
}

// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn) {
    firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener {
        // Handle failed update.
    }
}

Dari UI masuk Anda, saat penguji memilih untuk melanjutkan, panggil signInTester() :

Java

firebaseAppDistribution.signInTester().addOnSuccessListener( unused -> {
  // Handle successful sign-in.
}).addOnFailureListener(e -> {
  // Handle failed sign-in.
});

Kotlin+KTX

firebaseAppDistribution.signInTester().addOnSuccessListener {
  // Handle successful sign-in.
}.addOnFailureListener {
  // Handle failed sign-in.
});

Konfigurasi pembaruan lanjutan

Metode checkForNewRelease dan updateApp memberi Anda lebih banyak fleksibilitas untuk menyesuaikan saat penguji Anda diminta untuk memperbarui. Anda juga dapat menyesuaikan dialog pembaruan yang dibuat sebelumnya dan indikator kemajuan unduhan sehingga mereka dapat lebih cocok dengan tampilan dan nuansa aplikasi Anda.

Perhatikan bahwa updateApp tidak memberikan indikasi kemajuan unduhan. Ini berarti Anda perlu menerapkan indikasi kemajuan Anda sendiri menggunakan NotificationManager , semacam tampilan status dalam aplikasi, atau pendekatan lain.

Contoh berikut memeriksa apakah rilis baru tersedia dan kemudian menampilkan UI kustom. Sebelum memanggil checkForNewRelease dan updateApp , pastikan penguji masuk menggunakan konfigurasi masuk lanjutan .

Java

firebaseAppDistribution.checkForNewRelease().addOnSuccessListener(release -> {
    if (release != null) {
        // New release available. Start your update UI here.
    }
}).addOnFailureListener(e -> {
    // Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
    // if built for Play.
});

Kotlin+KTX

firebaseAppDistribution.checkForNewRelease().addOnSuccessListener { release ->
    if (release != null) {
        // New release available. Start your update UI here.
    }
}.addOnFailureListener {
    // Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
    // if built for Play.
}

Saat penguji memilih untuk melanjutkan pembaruan dari UI pembaruan Anda, panggil updateApp() :

Java

firebaseAppDistribution.updateApp()
    .addOnProgressListener(updateState -> {
      // Use updateState to show update progress.
    });

Kotlin+KTX

firebaseAppDistribution.updateApp()
    .addOnProgressListener { updateState ->
      // Use updateState to show update progress.
    }

Langkah 4 : Bangun dan uji implementasi Anda

Bangun aplikasi Anda dan uji implementasi Anda dengan mendistribusikan build ke penguji menggunakan Firebase console.

Kunjungi panduan Pemecahan Masalah Distribusi Aplikasi untuk mendapatkan bantuan terkait masalah umum, seperti:

  • Penguji tidak menerima peringatan dalam aplikasi
  • Penguji diminta untuk masuk ke Google lebih dari sekali