Test kullanıcılarını yeni yapılar hakkında bilgilendirin

İsteğe bağlı Firebase Uygulama Dağıtımı iOS ve Android SDK'ları, uygulamanızın yeni sürümleri yüklenmeye hazır olduğunda test kullanıcılarınıza uygulama içi uyarılar görüntülemenize olanak tanır. Bu kılavuzda, test kullanıcılarınız için yeni derleme uyarıları oluşturmak ve özelleştirmek amacıyla Uygulama Dağıtımı iOS ve Android SDK'larının nasıl kullanılacağı açıklanmaktadır.

Sen başlamadan önce

Henüz yapmadıysanız Android projenize Firebase'i ekleyin .

1. Adım : Uygulama Dağıtımı Test Cihazı API'sini etkinleştirin

  1. Google Cloud konsolunda projenizi seçin.

  2. Firebase App Testers API'nin altında Etkinleştir'i tıklayın.

2. Adım : Uygulamanıza Uygulama Dağıtımı ekleyin

Uygulama Dağıtımı Android SDK'sı iki kitaplıktan oluşur:

  • firebase-appdistribution-api - Tüm derleme çeşitlerine ekleyebileceğiniz, yalnızca API kitaplığı.
  • firebase-appdistribution - Tam SDK uygulaması (isteğe bağlı).

Yalnızca API kitaplığı, kodunuzun SDK'ya çağrı yapmasına olanak tanır. Tam SDK uygulaması mevcut değilse çağrıların hiçbir etkisi olmayacaktır.

Modülünüzde (uygulama düzeyi) Gradle dosyasında Uygulama Dağıtımı Android SDK'sının bağımlılığını bildirin (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle ). Tam SDK uygulamasının kendi kendini güncelleme işlevini Play derlemelerinize dahil etmekten kaçınmak için tüm derleme çeşitlerine yalnızca API kitaplığı bağımlılığını ekleyin. Tam SDK uygulamasını yalnızca yayın öncesi testler için özel olarak tasarlanan varyantlara ekleyin.

dependencies {
    // ADD the API-only library to all variants
    implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta12")

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

Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023 sürümünden itibaren hem Kotlin hem de Java geliştiricileri ana kitaplık modülüne güvenebilir (ayrıntılar için bu girişimle ilgili SSS bölümüne bakın).

3. Adım : Uygulama içi uyarıları yapılandırın

Uygulama Dağıtımı Android SDK'sı, test kullanıcılarınız için uygulama içi derleme uyarıları ayarlamanız için aşağıdaki yolları sağlar:

  • Test kullanıcılarına gösterilecek, önceden oluşturulmuş uygulama güncellemesi ve oturum açma iletişim kutuları ile birlikte gelen temel bir uyarı yapılandırması.
  • Kendi kullanıcı arayüzünüzü özelleştirmenize olanak tanıyan gelişmiş bir uyarı yapılandırması.

Uygulama Dağıtımı Android SDK'sını ilk kez kullanıyorsanız Temel Yapılandırma'yı kullanmanızı öneririz.

Temel yapılandırma

Henüz uyarıları etkinleştirmemiş test kullanıcılarına önceden oluşturulmuş bir uyarıları etkinleştirme iletişim kutusu görüntülemek için updateIfNewReleaseAvailable kullanın ve ardından yeni bir yapının mevcut olup olmadığını kontrol edin. Yöntem çağrıldığında aşağıdaki sırayı etkinleştirir:

  1. Bir test kullanıcısının uyarıları etkinleştirip etkinleştirmediğini kontrol eder. Test cihazı henüz uyarıları etkinleştirmediyse yöntem, test cihazından Google hesabıyla Uygulama Dağıtımı'nda oturum açmasını ister.

  2. Test cihazının yüklemesi için mevcut yeni yapıları kontrol eder.

  3. Test cihazını güncellemeye yönlendiren önceden oluşturulmuş bir uyarı görüntüler.

  4. Yeni yapı bir Android App Bundle (AAB) ise test kullanıcısını güncelleme işlemini tamamlaması için Google Play'e yönlendirir.

    Yeni yapı bir Android uygulaması PacKage (APK) ise, SDK yeni yapıyı arka planda indirir ve indirme işlemi tamamlandığında test cihazından yüklemesini ister. SDK, NotificationManager kullanarak kullanıcıya indirme ilerleme durumu bildirimleri gönderir. updateIfNewReleaseAvailable Görevine bir onProgressUpdate işleyicisi ekleyerek kendi ilerleme göstergenizi de ekleyebilirsiniz.

Uygulamanızın herhangi bir noktasında updateIfNewReleaseAvailable arayabilirsiniz. Örneğin, uygulamanın ana etkinliğinin onResume yöntemi sırasında updateIfNewReleaseAvailable çağırabilirsiniz.

Aşağıdaki örnek, test cihazının uyarıları etkinleştirip etkinleştirmediğini ve yeni bir yapıya erişiminin olup olmadığını kontrol eder. Bu koşullar karşılanırsa yapı kurulmaya hazır olduğunda bir iletişim kutusu görüntülenir:

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

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;
        }
      }
    });

Gelişmiş yapılandırma

Gelişmiş oturum açma yapılandırması

signInTester ve isTesterSignedIn yöntemleri, test kullanıcınızın oturum açma deneyimini özelleştirmeniz için size daha fazla esneklik sağlar; böylece test kullanıcısı deneyimi, uygulamanızın görünümü ve tarzıyla daha iyi eşleşebilir.

Aşağıdaki örnek, test kullanıcısının App Distribution test kullanıcısı hesabında zaten oturum açıp açmadığını kontrol eder. Bu, oturum açma kullanıcı arayüzünüzü (UI) yalnızca henüz oturum açmamış test kullanıcılarına göstermeyi seçmenize olanak tanır. Test kullanıcısı oturum açtıktan sonra, test kullanıcısının yeni bir yapıya erişimi olup olmadığını kontrol etmek için updateIfNewReleaseAvailable öğesini çağırabilirsiniz.

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

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.
    });
}

Test kullanıcısı devam etmeyi seçtiğinde, oturum açma kullanıcı arayüzünüzden signInTester() çağırın:

Kotlin+KTX

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

Java

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

Gelişmiş güncelleme yapılandırması

checkForNewRelease ve updateApp yöntemleri, test cihazınızdan güncelleme istendiğinde özelleştirme konusunda size daha fazla esneklik sağlar. Ayrıca önceden oluşturulmuş güncelleme iletişim kutusunu ve indirme ilerleme durumu göstergesini de özelleştirerek uygulamanızın görünümüne ve tarzına daha iyi uyum sağlayabilirsiniz.

updateApp indirme ilerleme durumu göstergesi sağlamadığını unutmayın. Bu, NotificationManager , bir tür uygulama içi durum göstergesini veya başka bir yaklaşımı kullanarak kendi ilerleme göstergenizi uygulamanız gerektiği anlamına gelir.

Aşağıdaki örnek, yeni bir sürümün mevcut olup olmadığını kontrol eder ve ardından özel bir kullanıcı arayüzü görüntüler. checkForNewRelease ve updateApp çağırmadan önce, test cihazının gelişmiş oturum açma yapılandırmasını kullanarak oturum açtığından emin olun.

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

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.
});

Test cihazı, güncelleme kullanıcı arayüzünüzden güncellemeye devam etmeyi seçtiğinde updateApp() çağırın:

Kotlin+KTX

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

Java

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

4. Adım : Uygulamanızı oluşturun ve test edin

Uygulamanızı oluşturun ve derlemeyi Firebase konsolunu kullanarak test kullanıcılarına dağıtarak uygulamanızı test edin.

Aşağıdakiler gibi yaygın sorunlarla ilgili yardım için Uygulama Dağıtımı Sorun Giderme kılavuzunu ziyaret edin:

  • Test kullanıcısı uygulama içi uyarıları almıyor
  • Test kullanıcısından Google'da birden fazla kez oturum açması isteniyor