Test kullanıcılarını yeni derlemelerle ilgili bilgilendirme


İsteğe bağlı Firebase App Distribution iOS ve Android SDK'ları, uygulamanızın yeni derlemeleri yüklenebilir olduğunda test kullanıcılarınıza uygulama içi uyarılar göstermenize olanak tanır. Bu kılavuzda, test kullanıcılarınız için yeni derleme uyarıları oluşturmak ve bunları özelleştirmek üzere App Distribution iOS ve Android SDK'larının nasıl kullanılacağı açıklanmaktadır.

Başlamadan önce

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

1. adım: App Distribution Tester API'yi etkinleştirin

  1. Google Cloud konsolunda projenizi seçin.

  2. Firebase App Testers API bölümünde Etkinleştir'i tıklayın.

2. adım: Uygulamanıza App Distribution ekleyin

App Distribution Android SDK'sı iki kitaplıktan oluşur:

  • firebase-appdistribution-api: Tüm derleme varyantlarına dahil edebileceğiniz, yalnızca API'ye yönelik kitaplık.
  • firebase-appdistribution - Tam SDK uygulaması (isteğe bağlı).

Yalnızca API'ye yönelik kitaplık, kodunuzun SDK'ya çağrı yapmasına olanak tanır. Tam SDK uygulaması mevcut değilse çağrıların etkisi olmaz.

App Distribution Android SDK'sına olan bağımlılığı modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) tanımlayın. Tam SDK uygulamasının kendi kendini güncelleme işlevini Play derlemelerinize dahil etmemek için yalnızca API'yi içeren kitaplık bağımlılığını tüm derleme varyantlarına ekleyin. Yalnızca yayın öncesi test için tasarlanan varyantlara tam SDK uygulamasını ekleyin.

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

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

Kotlin'e özgü bir kitaplık modülü mü arıyorsunuz? Ekim 2023 sürümünden itibaren hem Kotlin hem de Java geliştiriciler ana kitaplık modülünü kullanabilir (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

App Distribution Android SDK'sı, test kullanıcılarınız için uygulama içi derleme uyarılarını ayarlamanın aşağıdaki yollarını sunar:

  • Test kullanıcılarına gösterilecek önceden oluşturulmuş uygulama güncelleme ve oturum açma iletişim kutularını içeren 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ı.

App Distribution Android SDK'yı 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ş uyarıları etkinleştir iletişim kutusunu göstermek için updateIfNewReleaseAvailable işlevini kullanın ve ardından yeni bir derlemenin olup olmadığını kontrol edin. Yöntem çağrıldığında aşağıdaki sırayı uygular:

  1. Bir test kullanıcısının uyarıları etkinleştirip etkinleştirmediğini kontrol eder. Test kullanıcısı henüz uyarıları etkinleştirmediyse yöntem, test kullanıcısından Google Hesabı ile App Distribution'da oturum açmasını ister.

  2. Test kullanıcısının yükleyebileceği yeni derlemeleri kontrol eder.

  3. Test kullanıcısına güncelleme yapmasını isteyen önceden oluşturulmuş bir uyarı gösterir.

  4. Yeni derleme bir Android App Bundle (AAB) ise test kullanıcısını Google Play adresine yönlendirerek güncelleme işlemini tamamlamasını sağlar.

    Yeni derleme bir Android uygulama paketi (APK) ise SDK, yeni derlemeyi arka planda indirir ve indirme tamamlandığında test kullanıcısından yüklemesini ister. SDK, NotificationManager kullanarak kullanıcıya indirme ilerleme durumu bildirimleri gönderir. onProgressUpdate işleyicisini updateIfNewReleaseAvailable Görevine ekleyerek kendi ilerleme durumunuzu da ekleyebilirsiniz.

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

Aşağıdaki örnekte, test kullanıcısının uyarıları etkinleştirip etkinleştirmediği ve yeni bir derlemeye erişiminin olup olmadığı kontrol edilir. Bu koşullar karşılanırsa derleme yüklenmeye hazır olduğunda bir iletişim kutusu gösterilir:

Kotlin

// 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ılarınızın oturum açma deneyimini özelleştirme konusunda daha fazla esneklik sunar. Böylece test kullanıcılarının deneyimi, uygulamanızın görünümü ve tarzıyla daha iyi eşleşebilir.

Aşağıdaki örnekte, test kullanıcısının App Distribution test kullanıcısı hesabında oturum açıp açmadığı kontrol edilir. Bu seçenek, oturum açma kullanıcı arayüzünüzü yalnızca henüz oturum açmamış test kullanıcılarına göstermenizi sağlar. Test kullanıcısı oturum açtıktan sonra, test kullanıcısının yeni bir derlemeye erişimi olup olmadığını kontrol etmek için updateIfNewReleaseAvailable işlevini çağırabilirsiniz.

Kotlin

// 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() işlevini çağırın:

Kotlin

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 kullanıcınızın güncelleme yapması istendiğinde daha fazla özelleştirme esnekliği sunar. Ayrıca, uygulamanızın görünüm ve tarzına daha iyi uyum sağlaması için önceden oluşturulmuş güncelleme iletişim kutusunu ve indirme ilerleme durumu göstergesini de özelleştirebilirsiniz.

updateApp'da indirme ilerleme durumu gösterilmediğini unutmayın. Bu, NotificationManager, uygulama içi durum göstergesi veya başka bir yöntem kullanarak kendi ilerleme durumunuzu belirtmeniz gerektiği anlamına gelir.

Aşağıdaki örnekte yeni bir sürümün olup olmadığı kontrol edilir ve ardından özel bir kullanıcı arayüzü gösterilir. checkForNewRelease ve updateApp işlevlerini çağırmadan önce test kullanıcısının gelişmiş oturum açma yapılandırmasını kullanarak oturum açtığından emin olun.

Kotlin

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 kullanıcısı, güncelleme kullanıcı arayüzünüzden güncellemeyle devam etmeyi seçtiğinde şu işlevi çağırın: updateApp():

Kotlin

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 Firebase konsolunu kullanarak derlemeyi test kullanıcılarına dağıtarak uygulamanızı test edin.

Aşağıdakiler gibi sık karşılaşılan sorunlarla ilgili yardım almak için App Distribution 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