App Distribution Gradle eklentisini kullanarak App Distribution'i Android derleme sürecinize entegre edebilirsiniz. Eklenti, uygulamanızın Gradle dosyasında test kullanıcılarınızı ve sürüm notlarınızı belirtmenize olanak tanır. Böylece, uygulamanızın farklı derleme türleri ve varyantları için dağıtımları yapılandırabilirsiniz.
Bu kılavuzda, App Distribution Gradle eklentisini kullanarak APK'ların test kullanıcılarına nasıl dağıtılacağı açıklanmaktadır.
Başlamadan önce
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Başka Firebase ürünleri kullanmıyorsanız yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz yeterlidir. Ancak gelecekte başka ürünler kullanmaya karar verirseniz yukarıda bağlantısı verilen sayfadaki tüm adımları tamamladığınızdan emin olun.
Firebase konsolunun App Distribution sayfasını açın. İstendiğinde Firebase projenizi seçin, uygulama değiştiriciyi kullanarak uygulamanızı seçin ve Başlayın'ı tıklayın.
1. Adım: Android projenizi oluşturma
Kök düzeyindeki (proje düzeyinde) Gradle dosyanıza (
<project>/build.gradle.ktsveya<project>/build.gradle) App Distribution Gradle eklentisini bağımlılık olarak ekleyin:Kotlin
plugins { // ... id("com.android.application") version "7.3.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.5.0" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.3.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.3.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.5.0' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.3.0' apply false }
Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle
<project>/<app-module>/build.gradle.ktsveya<project>/<app-module>/build.gradle) App Distribution Gradle eklentisini ekleyin:Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
Kurumsal proxy veya güvenlik duvarı kullanıyorsanız App Distribution aracının dağıtımlarınızı Firebase'e yüklemesini sağlayan aşağıdaki Java sistem özelliğini ekleyin:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
2. adım: Firebase ile kimlik doğrulama
Gradle eklentisini kullanabilmek için önce aşağıdaki yöntemlerden birini kullanarak Firebase projenizle kimlik doğrulaması yapmanız gerekir. Varsayılan olarak Gradle eklentisi, başka bir kimlik doğrulama yöntemi kullanılmıyorsa Firebase CLI'dan kimlik bilgilerini arar.
3. Adım: Dağıtım özelliklerinizi yapılandırma
Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle
<project>/<app-module>/build.gradle.kts veya
<project>/<app-module>/build.gradle), en az bir firebaseAppDistribution bölümü ekleyerek App Distribution yapılandırmasını yapın.
Örneğin, release derlemesini test kullanıcılarına dağıtmak için aşağıdaki talimatları uygulayın:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "APK" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Derleme türleri ve ürün türleri için App Distribution özelliğini yapılandırabilirsiniz.
Örneğin, debug ve release derlemelerini "demo" ve "tam" ürün türlerinde dağıtmak için aşağıdaki talimatları uygulayın:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
Dağıtımı yapılandırmak için aşağıdaki parametreleri kullanın:
| App Distribution Derleme Parametreleri | |
|---|---|
appId
|
Uygulamanızın Firebase Uygulama Kimliği. Yalnızca Google Hizmetleri Gradle eklentisi yüklü değilse gereklidir. Uygulama kimliğini appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
Hizmet hesabınızın özel anahtar JSON dosyasının yolu. Yalnızca hizmet hesabı kimlik doğrulaması kullanıyorsanız gereklidir. |
artifactType
|
Uygulamanızın dosya türünü belirtir. |
artifactPath
|
Yüklemek istediğiniz APK veya AAB dosyasının mutlak yolu. |
releaseNotes veya releaseNotesFile |
Bu derlemenin sürüm notları. Sürüm notlarını doğrudan belirtebilir veya düz metin dosyasının yolunu girebilirsiniz. |
testers veya testersFile |
Derlemeleri dağıtmak istediğiniz test kullanıcılarının e-posta adresleri. Test kullanıcılarını, e-posta adreslerinin virgülle ayrılmış listesi olarak belirtebilirsiniz: testers="ali@example.com, bri@example.com, cal@example.com" Alternatif olarak, virgülle ayrılmış e-posta adresleri listesi içeren bir dosyanın yolunu da belirtebilirsiniz: testersFile="/path/to/testers.txt" |
groups veya groupsFile |
Derlemeleri dağıtmak istediğiniz test kullanıcısı grupları (Test kullanıcılarını yönetme bölümüne bakın).
Gruplar, Firebase konsolundaki Test Kullanıcıları sekmesinde bulabileceğiniz Grupları, grup takma adlarının virgülle ayrılmış listesi olarak belirtebilirsiniz: groups="qa-team, android-testers" Alternatif olarak, grup takma adlarının virgülle ayrılmış listesini içeren bir dosyanın yolunu da belirtebilirsiniz: groupsFile="/path/to/tester-groups.txt" |
testDevices veya testDevicesFile |
Uygulama Testi ajanı testlerini çalıştırmak istediğiniz test cihazları. Test cihazlarını, noktalı virgülle ayrılmış cihaz özellikleri listesi olarak belirtebilirsiniz: testDevices="model=shiba,version=34,locale=en,orientation=portrait" Alternatif olarak, cihaz özelliklerinin noktalı virgülle ayrılmış bir listesini içeren dosyanın yolunu da belirtebilirsiniz: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Uygulama Testi aracısı testleri sırasında kullanılacak otomatik giriş kullanıcı adı. |
testPassword veya testPasswordFile |
Uygulama Testi ajanı testleri sırasında kullanılacak otomatik giriş şifresi. Alternatif olarak, şifre içeren bir düz metin dosyasının yolunu da belirtebilirsiniz: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Uygulama Testi ajanı testleri sırasında kullanılacak otomatik giriş için kullanıcı adı alanının kaynak adı. |
testPasswordResource |
Uygulama Testi aracısı testleri sırasında kullanılacak otomatik giriş için şifre alanının kaynak adı. |
testNonBlocking |
Uygulama Testi aracısı testleri çalıştırılırken ayarlanırsa komut, testleri başlatır ve tamamlanmalarını beklemeden hemen geri döner. Test sonuçlarını görmek için Firebase konsolunu ziyaret edin. Bu işaret ayarlanmazsa komut, testler tamamlanana kadar engellenir ve testlerden herhangi biri başarısız olursa hata koduyla çıkar. |
resultsBucket
|
Test sonuçlarının depolandığı özel bir Google Cloud Storage (GCS) paketi. Boş bırakılırsa varsayılan paket kullanılır. Paket, faturalandırmanın etkin olduğu bir projeye ait olmalıdır. Paket belirtildiğinde, kullanılan depolama alanı için faturalandırma ücretleri uygulanır. |
stacktrace
|
Kullanıcı istisnaları için yığın izlemeyi yazdırır. Bu, sorunları ayıklarken faydalıdır. |
4. Adım. Uygulamanızı test kullanıcılarına dağıtma
Son olarak, test uygulamanızı paketlemek ve test kullanıcılarını davet etmek için projenizin Gradle sarmalayıcısıyla
BUILD-VARIANTveappDistributionUploadBUILD-VARIANThedeflerini oluşturun. Burada BUILD-VARIANT, önceki adımda yapılandırdığınız isteğe bağlı ürün türü ve derleme türüdür. Ürün türleri hakkında daha fazla bilgi için Derleme varyantlarını yapılandırma başlıklı makaleyi inceleyin.Örneğin, uygulamanızı
releasederleme değişkenini kullanarak dağıtmak için aşağıdaki komutu çalıştırın:./gradlew assembleRelease appDistributionUploadRelease
Alternatif olarak, Google Hesabınızla kimlik doğrulaması yaptıysanız ve Gradle derleme dosyanızda kimlik bilgileri sağlamadıysanız
FIREBASE_TOKENdeğişkenini ekleyin:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
Ayrıca,
--<property-name>=<property-value>biçiminde komut satırı bağımsız değişkenleri ileterekbuild.gradledosyanızda ayarlanan değerleri geçersiz kılabilirsiniz. Örneğin:App Distribution hizmetine hata ayıklama derlemesi yüklemek için:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"Firebase projenize başka test kullanıcıları davet etmek veya mevcut test kullanıcılarını kaldırmak için:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"Firebase projenize eklenen test kullanıcılarını ayrı sürümlere ekleyebilirsiniz. Kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez ancak belirli bir süre boyunca sürümlerinize erişmeye devam edebilirler.
Test kullanıcılarını
--emailsyerine--file="/path/to/testers.txt"kullanarak da belirtebilirsiniz.appDistributionAddTestersveappDistributionRemoveTestersgörevleri, aşağıdaki bağımsız değişkenleri de kabul eder:projectNumber: Firebase proje numaranız.serviceCredentialsFile: Google hizmeti kimlik bilgileri dosyanızın yolu. Bu, yükleme işlemi tarafından kullanılan bağımsız değişkenle aynıdır.
Gradle eklentisi, sürüm yüklendikten sonra aşağıdaki bağlantıları oluşturur. Bu bağlantılar, ikili programları yönetmenize ve test kullanıcıları ile diğer geliştiricilerin doğru sürüme sahip olmasını sağlamanıza yardımcı olur:
firebase_console_uri- Tek bir sürümü gösteren Firebase konsolunun bağlantısı. Bu bağlantıyı kuruluşunuzdaki diğer geliştiricilerle paylaşabilirsiniz.testing_uri- Test kullanıcısı deneyiminde (yerleşik Android uygulaması) sürümün bağlantısı. Test kullanıcıları bu bağlantıyı kullanarak sürüm notlarını görüntüleyebilir ve uygulamayı cihazlarına yükleyebilir. Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişimi olması gerekir.binary_download_uri: Uygulama ikili programını (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantı. Bağlantının geçerlilik süresi bir saattir.
Derlemenizi dağıttıktan sonra 150 gün (beş ay) boyunca Firebase konsolunun App Distribution kontrol panelinde kullanılabilir. Derlemenin süresinin dolmasına 30 gün kaldığında hem konsolda hem de test kullanıcınızın test cihazındaki derleme listesinde bir süre sonu bildirimi gösterilir.
Uygulamayı test etmeye davet edilmemiş test kullanıcıları, başlamak için e-posta davetiyeleri alır ve mevcut test kullanıcıları, yeni bir derlemenin test edilmeye hazır olduğuna dair e-posta bildirimleri alır (test uygulamasının nasıl yükleneceğine ilişkin talimatlar için test kullanıcısı kurulum kılavuzunu okuyun). Firebase Console'da her test kullanıcısının durumunu (daveti kabul edip etmediğini ve uygulamayı indirip indirmediğini) izleyebilirsiniz.
Test kullanıcılarının, uygulamayı test etme davetini kabul etmek için 30 günü vardır. Bu sürenin sonunda davetin süresi dolar. Davetiyenin süresinin dolmasına 5 gün kaldığında, Firebase konsolunda sürümdeki test kullanıcısının yanında bir süre sonu bildirimi görünür. Test kullanıcısı satırındaki açılır menüyü kullanarak davetiyeyi yeniden gönderebilirsiniz.
Sonraki adımlar
Test kullanıcılarından uygulamanız hakkında geri bildirim (ekran görüntüleri dahil) toplamak için uygulama içi geri bildirim özelliğini uygulayın.
Uygulamanızın yeni derlemeleri yüklenmeye hazır olduğunda test kullanıcılarınıza uygulama içi uyarıları nasıl göstereceğinizi öğrenin.
Uygulama paketi sürümlerini adım adım nasıl dağıtacağınızı öğrenmek için Android App Bundle codelab'ini ziyaret edin.
CI/CD kullanarak Android uygulamalarını kalite güvencesi test uzmanlarına dağıtmayla ilgili en iyi uygulamaları öğrenin.