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

İsteğe bağlı Firebase App Distribution iOS ve Android SDK'ları, uygulamanızın yeni derlemeleri yüklenmeye hazır 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ı nasıl kullanacağınız 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 Console'da projenizi seçin.

  2. Firebase App Testers API'nin altında 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 kitaplığı.
  • firebase-appdistribution: Tam SDK uygulaması (isteğe bağlı).

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

App Distribution Android SDK'sına bağımlılığı modülünüzün (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) bildirin. Play derlemelerinize tam SDK uygulamasının kendi kendine güncelleme işlevini dahil etmemek için tüm derleme varyantlarına yalnızca API kitaplığı bağımlılığını ekleyin. SDK uygulamasının tamamını yalnızca yayın öncesi test için tasarlanmış varyantlara ekleyin.

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

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

Kotlin'e özel bir kitaplık 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 bağlı olabilir (ayrıntılı bilgi için bu girişimle ilgili SSS bölümünü inceleyin).

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ı ayarlamak üzere aşağıdaki yöntemleri sunar:

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

App Distribution 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ş uyarıları etkinleştirme iletişim kutusunu görüntülemek için updateIfNewReleaseAvailable kullanın ve ardından yeni bir derlemenin mevcut olup olmadığını kontrol edin. Bu 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ştirmemişse bu 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üklemesi için yeni kullanıma sunulan derlemeleri kontrol eder.

  3. Test kullanıcısının güncellemesini isteyen önceden oluşturulmuş bir uyarı görüntüler.

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

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

updateIfNewReleaseAvailable uygulamasını istediğiniz zaman uygulamanızda çağırabilirsiniz. Örneğin, uygulamanın ana etkinliğinin onResume yöntemi sırasında updateIfNewReleaseAvailable öğesini çağırabilirsiniz.

Aşağıdaki örnekte, test kullanıcısının uyarıları etkinleştirip etkinleştirmediğini 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+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ştirme konusunda size daha fazla esneklik sağlar. Böylece test kullanıcısı deneyimi, uygulamanızın görünümüne ve tarzına daha uygun olur.

Aşağıdaki örnekte, test kullanıcısının App Distribution test kullanıcısı hesabında oturum açmış olup olmadığı kontrol edilir. 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 derlemeye erişimi olup olmadığını kontrol etmek için updateIfNewReleaseAvailable yöntemini ç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.
    });
}

Oturum açma kullanıcı arayüzünüzde, test kullanıcısı devam etmeyi seçtiğinde signInTester() numaralı telefonu arayı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 kullanıcınızdan güncelleme yapması istendiğinde özelleştirme konusunda size daha fazla esneklik sağlar. Ayrıca, uygulamanızın görünüm ve tarzına daha iyi uyum sağlamak için önceden oluşturulmuş güncelleme iletişim kutusunu ve indirme ilerleme durumu göstergesini özelleştirebilirsiniz.

updateApp işlevinin, indirme işleminin ilerleme durumunu göstermediğini unutmayın. Bu, NotificationManager, bir tür uygulama içi durum görüntüleme veya başka bir yaklaşım kullanarak kendi ilerleme göstergenizi uygulamanız gerektiği anlamına gelir.

Aşağıdaki örnekte, yeni bir sürümün mevcut olup olmadığı kontrol edilir ve ardından özel bir kullanıcı arayüzü görüntülenir. checkForNewRelease ve updateApp çağrılarını çağırmadan önce, gelişmiş oturum açma yapılandırmasını kullanarak test kullanıcısının 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 kullanıcısı, güncelleme kullanıcı arayüzünüzden güncelleme işlemine devam etmeyi seçtiğinde updateApp() numaralı telefonu arayı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 Firebase konsolunu kullanıp derlemeyi test kullanıcılarına dağıtarak uygulamanızı test edin.

Aşağıdakiler gibi yaygın sorunlarla ilgili yardım almak için Uygulama Dağıtımıyla İlgili 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