App Distribution Gradle eklentisini kullanarak App Distribution'ı Android derleme sürecinize entegre edebilirsiniz. Eklenti, test kullanıcılarınızı ve sürüm notlarınızı uygulamanızın Gradle dosyasında 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 eklentisi kullanılarak Android App Bundle'ların (AAB'ler) test kullanıcılarına nasıl dağıtılacağı açıklanmaktadır.
App Distribution, yüklediğiniz AAB'leri işlemek ve test kullanıcılarınızın cihaz yapılandırmaları için optimize edilmiş APK'lar sunmak amacıyla Google Play'in dahili uygulama paylaşım hizmetiyle entegre olur. AAB'leri dağıtarak şunları yapabilirsiniz:
Test kullanıcılarınızın cihazları için optimize edilmiş, Google Play tarafından sunulan optimize edilmiş APK'ları çalıştırın.
Cihaza özgü sorunları ortaya çıkarın ve hatalarını ayıklayın.
Play Feature Delivery ve Play Asset Delivery gibi uygulama paketi özelliklerini test edin.
Test kullanıcılarınız için indirme boyutunu küçültün.
Gerekli izinler
App Distribution'ya AAB yüklemek için Firebase uygulamanızı Google Play'deki bir uygulamaya bağlamanız gerekir. Bu işlemleri gerçekleştirmek için gerekli erişim düzeyine sahip olmanız gerekir.
Gerekli Firebase erişiminiz yoksa bir Firebase proje sahibinden Firebase konsolu IAM ayarlarını kullanarak size geçerli rolü atamasını isteyebilirsiniz. Sahip rolü olan kullanıcıyı bulma veya bu rolü atama dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "Firebase projelerine izinler ve erişim" başlıklı SSS bölümünü inceleyin.
Aşağıdaki tablo, bir Firebase uygulamasını Google Play içindeki bir uygulamaya bağlama ve AAB'leri yükleme için geçerlidir.
Firebase konsolundaki işlem | Gerekli IAM izni | Gerekli izinleri varsayılan olarak içeren IAM rolleri | Ek olarak gerekli roller |
---|---|---|---|
Firebase uygulamasını Google Play içindeki bir uygulamaya bağlama | firebase.playLinks.update
|
Aşağıdaki rollerden biri: | Google Play geliştirici hesabına yönetici olarak erişim |
App Distribution'ya AAB yükleme | firebaseappdistro.releases.update
|
Aşağıdaki rollerden biri: | –– |
Başlamadan önce
Henüz yapmadıysanız Firebase'i Android projenize ekleyin. Bu iş akışının sonunda Firebase projenizde bir Firebase Android uygulaması bulunur.
Başka Firebase ürünleri kullanmıyorsanız yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz gerekir. Ek ürünler kullanmaya karar verirseniz Android projenize Firebase ekleme bölümündeki tüm adımları tamamladığınızdan emin olun.
Google Play'e Firebase bağlantısı oluşturmak ve AAB'leri yüklemek için uygulamanızın şu koşulları karşıladığından emin olun:
Hem Google Play'deki uygulama hem de Firebase Android uygulaması aynı paket adı kullanılarak kaydedilmelidir.
Google Play'deki uygulama, uygulama kontrol panelinde ayarlanmalı ve Google Play kanallarından birine (Dahili test, Kapalı test, Açık test veya Üretim) dağıtılmalıdır.
Uygulamanın Google Play'deki incelemesi tamamlanmış ve uygulama yayınlanmış olmalıdır. Uygulama durumu sütununda şu durumlardan biri bulunuyorsa uygulamanız yayınlanmış demektir: Dahili test (Taslak dahili test değil), Kapalı test, Açık test veya Üretim.
Firebase Android uygulamanızı Google Play geliştirici hesabınıza bağlayın:
Firebase konsolunda
'na gidin ve Entegrasyonlar sekmesini seçin. Proje ayarları Google Play kartında Bağlan'ı tıklayın.
Google Play bağlantılarınız zaten varsa bunun yerine Yönet'i tıklayın.App Distribution entegrasyonunu etkinleştirmek ve hangi Firebase Android uygulamalarının Google Play'e bağlanacağını seçmek için ekrandaki talimatları uygulayın.
Google Play'e bağlantı verme hakkında daha fazla bilgi edinin.
1. Adım. Android projenizi oluşturma
Kök düzeyindeki (proje düzeyinde) Gradle dosyanıza (
<project>/build.gradle.kts
veya<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.4.3" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.1.1" 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.4.3' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.1.1' apply false }
Modül (uygulama düzeyi) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle.kts
veya<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 bir proxy veya güvenlik duvarı kullanıyorsanız dağıtımlarınızı Firebase'e yüklemenizi sağlayan aşağıdaki Java sistem özelliğini ekleyin:App Distribution
-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 kimliğinizi doğrulamanız gerekir. Varsayılan olarak, başka bir kimlik doğrulama yöntemi kullanılmıyorsa Gradle eklentisi, Firebase CLI'daki kimlik bilgilerini arar.
3. Adım: Dağıtım mülklerinizi 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 öğesini yapılandırı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 = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
App Distribution için derleme türlerini ve ürün çeşitlerini yapılandırabilirsiniz.
Örneğin, debug
ve release
yapılarını "demo" ve "full" ürün varyantlarında 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 Parametre Oluşturma | |
---|---|
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 derlemeyle ilgili sürüm notları. Sürüm notlarını doğrudan veya düz metin dosyasının yolunu belirtebilirsiniz. |
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ış bir listesi olarak belirtebilirsiniz: testers="ali@example.com, bri@example.com, cal@example.com" Dilerseniz virgülle ayrılmış e-posta adresi listesini 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ı (bkz. Test kullanıcılarını yönetme).
Gruplar, Firebase App Distribution konsolundaki Test kullanıcıları sekmesinde bulabileceğiniz Grupları, virgülle ayrılmış grup takma adları listesi olarak belirtebilirsiniz: groups="qa-team, android-testers" Alternatif olarak, virgülle ayrılmış grup takma adları listesini içeren bir dosyanın yolunu belirtebilirsiniz: groupsFile="/path/to/tester-groups.txt" |
testDevices veya testDevicesFile |
Aşağıdaki dağıtım türleri, Otomatikleştirilmiş Test Aracı beta özelliğinin bir parçasıdır. Derlemeleri dağıtmak istediğiniz test cihazları (bkz. Otomatik testler). Test cihazlarını, noktalı virgülle ayrılmış cihaz özellikleri listesi olarak belirtebilirsiniz: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" Alternatif olarak, noktalı virgülle ayrılmış cihaz özelliklerinin listesini içeren bir dosyanın yolunu belirtebilirsiniz: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Otomatik testler sırasında kullanılacak otomatik giriş için kullanıcı adı. |
testPassword veya testPasswordFile |
Otomatik testler sırasında kullanılacak otomatik giriş şifresi. Dilerseniz şifre içeren bir düz metin dosyasının yolunu da belirtebilirsiniz: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Otomatik testler sırasında kullanılacak otomatik giriş için kullanıcı adı alanının kaynak adı. |
testPasswordResource |
Otomatik testler sırasında kullanılacak otomatik giriş için şifre alanının kaynak adı. |
testNonBlocking |
Otomatik testleri eşzamansız olarak çalıştırın. Otomatik test sonuçları için Firebase konsolunu ziyaret edin. |
stacktrace
|
Kullanıcı istisnalarının yığın izini yazdırır. Bu, sorunları ayıklarken yararlı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
BUILD-VARIANT
veappDistributionUploadBUILD-VARIANT
hedeflerini projenizin Gradle sarmalayıcısıyla oluşturun. Burada BUILD-VARIANT, önceki adımda yapılandırdığınız isteğe bağlı ürün çeşnisi ve derleme türüdür. Ürün çeşitleri hakkında daha fazla bilgi için Derleme varyantlarını yapılandırma başlıklı makaleyi inceleyin.Örneğin, uygulamanızı
release
derleme varyantını kullanarak dağıtmak için aşağıdaki komutu çalıştırın:./gradlew bundleRelease appDistributionUploadRelease
Alternatif olarak, Google Hesabınızla kimlik doğruladıysanız ve Gradle derleme dosyanızda kimlik bilgileri sağlamadıysanız
FIREBASE_TOKEN
değişkenini ekleyin:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Ayrıca,
build.gradle
biçiminde komut satırı bağımsız değişkenleri ileterek--<property-name>=<property-value>
dosyanızda ayarlanan değerleri geçersiz kılabilirsiniz. Örneğin:App Distribution'ya hata ayıklama derlemesi yüklemek için:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Firebase projenize ek 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 bir test kullanıcısı eklendikten sonra bu kullanıcıyı tek tek sürümlere ekleyebilirsiniz. Kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez ancak bir süre boyunca sürümlerinize erişmeye devam edebilir.
Test kullanıcılarını
--emails
yerine--file="/path/to/testers.txt"
kullanarak da belirtebilirsiniz.appDistributionAddTesters
veappDistributionRemoveTesters
görevleri de aşağıdaki bağımsız değişkenleri 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 argümanla aynıdır.
Gradle eklentisi, yayın yüklemesinden sonra aşağıdaki bağlantıları çıkarır. Bu bağlantılar, ikili dosyaları yönetmenize ve test kullanıcılarının ve diğer geliştiricilerin doğru sürümü kullanması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 (Android yerel uygulaması) sürüm notlarını görüntülemelerine ve uygulamayı cihazlarına yüklemelerine olanak tanıyan sürüm bağlantısı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüm erişimi olması gerekir.binary_download_uri
- Uygulama ikilisini (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantı. Bağlantının süresi bir saat sonra dolar.
Derlemenizi dağıttıktan sonra 150 gün (beş ay) boyunca App Distribution konsolunun Firebase gösterge tablosunda kullanılabilir. Derlemenin geçerlilik süresinin dolmasına 30 gün kaldığında hem konsolda hem de test cihazındaki test derlemeleri listesinde geçerlilik süresiyle ilgili bir bildirim gösterilir.
Uygulamayı test etmeye davet edilmemiş test kullanıcıları, başlamak için e-posta davetiyesi alır. Mevcut test kullanıcıları ise yeni bir derlemenin test edilmeye hazır olduğuna dair e-posta bildirimi alır (Test uygulamasının nasıl yükleneceğiyle ilgili talimatlar için test kullanıcısı kurulum kılavuzunu inceleyin). Her test kullanıcısının durumunu (daveti kabul edip etmediği ve uygulamayı indirip indirmediği) Firebase konsolunda izleyebilirsiniz.
Test kullanıcılarının, uygulamayı test etme davetini 30 gün içinde kabul etmesi gerekir. Aksi takdirde davetin süresi sona erer. Bir davetin geçerlilik süresinin bitimine 5 gün kala, sürümdeki test kullanıcısının yanında Firebase konsolunda geçerlilik bitişi bildirimi gösterilir. Davet, test kullanıcısı satırındaki açılır menü kullanılarak yeniden gönderilerek yenilenebilir.
Sonraki adımlar
Test kullanıcılarının uygulamanızla ilgili geri bildirim (ekran görüntüleri dahil) göndermesini kolaylaştırmak için uygulama içi geri bildirim özelliğini uygulayın.
Uygulamanızın yeni derlemeleri yüklenebilir olduğunda test kullanıcılarınıza uygulama içi uyarılar göstermeyi öğ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.
Android uygulamalarını CI/CD kullanarak QA test uzmanlarına dağıtma ile ilgili en iyi uygulamaları öğrenin.