İ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 ö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.
Google Cloud konsolunda projenizi seçin.
Firebase App Testers API bölümünde Etkinleştir'i tıklayın.
2. adım: Uygulamanıza App Distribution ekleyin
2. adım: Uygulamanıza App Distribution ekleyin
App Distribution Android SDK'sı iki kitaplıktan oluşur:
firebase-appdistribution-api: Tüm derleme değişkenlerine ekleyebileceğiniz, yalnızca API içeren kitaplık.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ı yoksa çağrıların herhangi bir 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. Play derlemelerinize tam SDK uygulamasının kendi kendine güncelleme işlevini dahil etmemek için yalnızca API kitaplığı bağımlılığını tüm derleme değişkenlerine ekleyin.
Tam SDK uygulaması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-beta21")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta21")
}
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ı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ı ayarlamanın aşağıdaki yollarını sunar:
- Test kullanıcılarına gösterilecek önceden oluşturulmuş uygulama güncellemesi 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ıdır.
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 uyarıları etkinleştirme iletişim kutusu göstermek için updateIfNewReleaseAvailable yöntemini kullanın ve ardından yeni bir derlemenin mevcut olup olmadığını kontrol edin. Yöntem çağrıldığında aşağıdaki sırayı uygular:
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 uygulamasında oturum açmasını ister.
Test kullanıcısının yükleyebileceği yeni derlemeleri kontrol eder.
Test kullanıcısından güncelleme yapmasını isteyen önceden oluşturulmuş bir uyarı gösterir.
Yeni derleme bir Android App Bundle (AAB) ise test kullanıcısını güncelleme işlemini tamamlaması için Google Play adresine yönlendirir.
Yeni derleme bir Android uygulama paketi (APK) ise SDK, yeni derlemeyi arka planda indirir ve indirme işlemi tamamlandığında test kullanıcısından yüklemesini ister. SDK,
NotificationManagerkullanarak kullanıcıya indirme ilerleme durumu bildirimleri gönderir.updateIfNewReleaseAvailablegörevine bironProgressUpdateişleyici ekleyerek kendi ilerleme durumu göstergenizi de ekleyebilirsiniz.
updateIfNewReleaseAvailable yöntemini uygulamanızın herhangi bir noktasında çağırabilirsiniz. Örneğin, uygulamanın ana etkinliğinin onResume yöntemi sırasında updateIfNewReleaseAvailable yöntemini çağırabilirsiniz.
Aşağıdaki örnekte, test kullanıcısının uyarıları etkinleştirip etkinleştirmediği ve yeni bir derlemeye erişimi olup olmadığı kontrol edilir. Bu koşullar karşılanıyorsa derleme yüklenebilir 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ınızın oturum açma deneyimini özelleştirme konusunda size daha fazla esneklik sunar. Böylece test kullanıcısı deneyimi, uygulamanızın görünümüne ve tarzına daha iyi uyum sağlayabilir.
Aşağıdaki örnekte, test kullanıcısının App Distribution test kullanıcısı hesabında oturum açıp açmadığı kontrol edilmektedir. Bu sayede, 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çebilirsiniz. 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
// 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ı, oturum açma kullanıcı arayüzünüzden devam etmeyi seçtiğinde signInTester() yöntemini ç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ızdan güncelleme yapması istendiğinde özelleştirme konusunda daha fazla esneklik sağlar. Ayrıca, önceden oluşturulmuş güncelleme iletişim kutusunu ve indirme ilerleme durumu göstergesini uygulamanızın görünümüne ve tarzına daha iyi uyacak şekilde özelleştirebilirsiniz.
updateApp, indirme işleminin ilerleme durumunu göstermez. Yani NotificationManager, uygulama içi durum göstergesi veya başka bir yaklaşım kullanarak kendi ilerleme durumu göstergenizi uygulamanız gerekir.
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österilir. checkForNewRelease ve updateApp yöntemlerini ç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üncellemeye devam etmeyi seçtiğinde updateApp() yöntemini çağırın:
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
Firebase Console'u kullanarak derlemeyi test kullanıcılarına dağıtarak uygulamanızı oluşturun ve 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