欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

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

İsteğe bağlı Firebase App Distribution iOS ve Android SDK'ları, uygulamanızın yeni sürümleri yüklenebilir olduğunda testçilerinize uygulama içi uyarılar görüntülemenize olanak tanır. Bu kılavuz, test kullanıcıları için yeni derleme uyarıları oluşturmak ve özelleştirmek için App Distribution iOS ve Android SDK'larının nasıl kullanılacağını açıklar.

Sen başlamadan önce

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

1. Adım : App Distribution Tester API'sini etkinleştirin

  1. Google Cloud Console'da projenizi seçin.

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

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

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

  • firebase-appdistribution-api - Tüm yapı türevlerine 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ına olanak tanır. Tam SDK uygulaması mevcut değilse, çağrıların hiçbir etkisi olmaz.

Modülünüzdeki (uygulama düzeyi) Gradle dosyanızdaki (genellikle app/build.gradle ) App Distribution Android SDK'sının bağımlılığını bildirin. Tam SDK uygulamasının kendi kendini güncelleme işlevini Play derlemelerinize dahil etmekten kaçınmak için, yalnızca API kitaplığı bağımlılığını tüm derleme varyantlarına ekleyin. Yalnızca tam SDK uygulamasını yalnızca yayın öncesi test için tasarlanmış varyantlara ekleyin:

Java

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

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

Kotlin+KTX

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

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

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

App Distribution Android SDK, testçileriniz için uygulama içi derleme uyarıları ayarlamak için aşağıdaki yolları sağlar:

  • Test kullanıcılarına görüntülenmesi için ö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ı arabiriminizi ö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ş bir etkinleştirme uyarıları iletişim kutusu görüntülemek için updateIfNewReleaseAvailable kullanın ve ardından yeni bir yapı olup olmadığını kontrol edin. Çağrıldığında, yöntem aşağıdaki sırayı uygular:

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

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

  3. Test cihazından güncelleme yapmasını isteyen önceden oluşturulmuş bir uyarı görüntüler.

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

    Yeni yapı bir Android uygulama Paketi (APK) ise, SDK arka planda yeni yapıyı indirir ve indirme tamamlandığında test cihazından yüklemesini ister. SDK, NotificationManager kullanarak kullanıcıya indirme ilerleme 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 öğesini çağırabilirsiniz.

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

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

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ştirmek için size daha fazla esneklik sağlar, böylece test kullanıcısı deneyimi, uygulamanızın görünümü ve hissi ile 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ı arabiriminizi (UI) yalnızca henüz oturum açmamış test kullanıcılarına görüntülemeyi 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 arayabilirsiniz.

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

Oturum açma kullanıcı arabiriminizden, test kullanıcısı devam etmeyi seçtiğinde, signInTester() çağırın:

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

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

checkForNewRelease ve updateApp yöntemleri, test cihazınızdan güncelleme yapması istendiğinde özelleştirmeniz için size daha fazla esneklik sağlar. Ayrıca önceden oluşturulmuş güncelleme iletişim kutusunu ve indirme ilerleme göstergesini özelleştirebilir, böylece uygulamanızın görünümüne ve hissine daha iyi uyum sağlayabilirsiniz.

updateApp indirme ilerleme göstergesi sağlamadığını unutmayın. Bu, NotificationManager , bir tür uygulama içi durum ekranı 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ı arabirimi görüntüler. checkForNewRelease ve updateApp çağrılarını yapmadan önce, gelişmiş oturum açma yapılandırmasını kullanarak test cihazının oturum açtığından emin olun.

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

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

Java

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

Kotlin+KTX

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

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

Uygulamanızı derleyin ve yapıyı 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 birden fazla kez Google'da oturum açması isteniyor