App Distribution Gradle eklentisini kullanarak App Distribution'ı Android oluşturma işleminize entegre edebilirsiniz. Eklenti, test cihazlarınızı ve sürüm notlarınızı uygulamanızın Gradle dosyasında belirtmenize izin vererek, uygulamanızın farklı derleme türleri ve varyantları için dağıtımları yapılandırmanıza olanak tanır.
Bu kılavuz, App Distribution Gradle eklentisini kullanarak Android Uygulama Paketlerinin (AAB'ler) test kullanıcılarına nasıl dağıtılacağını açıklar.
Uygulama Dağıtımı, 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 için Google Play'in dahili uygulama paylaşım hizmetiyle entegre olur. AAB'leri dağıtmak, aşağıdakileri yapmanızı sağlar:
Test kullanıcılarınızın cihazlarına göre optimize edilmiş optimize edilmiş APK'ları (Google Play tarafından sunulan) çalıştırın.
Cihaza özgü sorunları ortaya çıkarın ve hatalarını ayıklayın.
Play Özellik Teslimi ve Play Varlık Teslimi gibi uygulama paketi özelliklerini test edin.
Test kullanıcılarınız için indirme boyutunu azaltın.
Gerekli izinler
AAB'leri App Distribution'a yüklemek için Firebase uygulamanızı Google Play'deki bir uygulamaya bağlamanız gerekir. Bu eylemleri gerçekleştirmek için gerekli erişim düzeyine sahip olmanız gerekir.
Gerekli Firebase erişimine sahip değilseniz, Firebase konsolu IAM ayarları yoluyla bir Firebase proje Sahibinden size uygun rolü atamasını isteyebilirsiniz. Sahip bulma veya atama da dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "Firebase projelerine izinler ve erişim" SSS bölümünü inceleyin.
Aşağıdaki tablo, bir Firebase uygulamasını Google Play'deki bir uygulamaya bağlamak ve AAB'leri yüklemek için geçerlidir.
Firebase konsolunda işlem | Gerekli IAM izni | Varsayılan olarak gerekli izinleri içeren IAM rolleri | Ek gerekli rol(ler) |
---|---|---|---|
Bir Firebase uygulamasını Google Play'deki bir uygulamaya bağlama | firebase.playLinks.update | Aşağıdaki rollerden biri: | Yönetici olarak bir Google Play geliştirici hesabına erişim |
AAB'leri App Distribution'a yükleyin | firebaseappdistro.releases.update | Aşağıdaki rollerden biri: | –– |
Sen başlamadan önce
Henüz yapmadıysanız, Firebase'i Android projenize ekleyin . Bu iş akışının sonunda, Firebase projenizde bir Firebase Android Uygulamanız olacak.
Başka bir Firebase ürünü kullanmıyorsanız, yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz gerekir. Ek ürünler kullanmaya karar verirseniz Firebase'i Android projenize ekleyin bölümündeki tüm adımları tamamladığınızdan emin olun.
Google Play'e bir Firebase bağlantısı oluşturmak ve AAB'leri yüklemek için uygulamanızın aşağıdaki gereksinimleri karşıladığından emin olun:
Google Play'deki uygulama ve Firebase Android uygulaması, aynı paket adı kullanılarak kaydedilir.
Google Play'deki uygulama , uygulama kontrol panelinde kurulur ve Google Play kanallarından birine (Dahili test, Kapalı test, Açık test veya Üretim) dağıtılır.
Uygulamanın Google Play'deki incelemesi tamamlandı ve uygulama yayınlandı. Uygulama durumu sütununda şu durumlardan biri görüntüleniyorsa uygulamanız yayınlanmıştır: Dahili test (Taslak dahili testi 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,
gidin Proje ayarları , ardından Entegrasyonlar sekmesini seçin.Google Play kartında Bağlantı'yı tıklayın.
Halihazırda Google Play bağlantılarınız varsa bunun yerine Yönet'i tıklayın.Uygulama Dağıtımı entegrasyonunu etkinleştirmek için ekrandaki talimatları izleyin ve hangi Firebase Android Uygulamalarının Google Play'e bağlanacağını seçin.
Google Play'e bağlanma hakkında daha fazla bilgi edinin.
1. Adım. Android projenizi kurun
Kök düzeyinde (proje düzeyinde) Gradle dosyanıza (
<project>/build.gradle.kts
veya<project>/build.gradle
), App Distribution Gradle eklentisini bir bağımlılık olarak ekleyin:Kotlin
plugins { // ... id("com.android.application") version "7.2.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.3.15" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "4.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.2.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.3.15' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '4.0.0' apply false }
Modül (uygulama düzeyinde) Gradle dosyanıza (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ının arkasındaysanız, App Distribution'ı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ğrulayın
Gradle eklentisini kullanabilmeniz için öncelikle Firebase projenizde aşağıdaki yollardan biriyle kimlik doğrulaması yapmanız gerekir. Varsayılan olarak Gradle eklentisi, başka bir kimlik doğrulama yöntemi kullanılmıyorsa Firebase CLI'den kimlik bilgilerini arar.
Bir hizmet hesabıyla kimlik doğrulaması, eklentiyi sürekli tümleştirme (CI) sisteminizle esnek bir şekilde kullanmanıza olanak tanır. Hizmet hesabı kimlik bilgilerini sağlamanın iki yolu vardır:
- Hizmet hesabı anahtar dosyanızı
build.gradle
dosyasına iletin. Yapı ortamınızda hizmet hesabı anahtar dosyanız zaten varsa, bu yöntemi kullanışlı bulabilirsiniz. -
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini hizmet hesabı anahtar dosyanıza işaret edecek şekilde ayarlayın. Halihazırda başka bir Google hizmeti (ör. Google Cloud) için yapılandırılmış Uygulama Varsayılan Kimlik Bilgileri'ne (ADC) sahipseniz bu yöntemi tercih edebilirsiniz.
Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulaması yapmak için:
- Google Cloud Console'da projenizi seçin ve yeni bir hizmet hesabı oluşturun.
- Firebase Uygulama Dağıtım Yöneticisi rolünü ekleyin.
- Özel bir json anahtarı oluşturun ve anahtarı yapı ortamınız tarafından erişilebilen bir konuma taşıyın. Firebase projenizde Uygulama Dağıtımı için yönetici erişimi sağladığından, bu dosyayı güvenli bir yerde sakladığınızdan emin olun .
- Uygulamanızı 20 Eylül 2019'dan sonra oluşturduysanız bu adımı atlayın: Google APIs konsolunda Firebase App Distribution API'yi etkinleştirin. İstendiğinde, Firebase projenizle aynı ada sahip projeyi seçin.
Hizmet hesabı kimlik bilgilerinizi sağlayın veya bulun:
- Gradle'a hizmet hesabı anahtarınızı iletmek için
build.gradle
dosyanızdaserviceCredentialsFile
özelliğini özel anahtar JSON dosyasına ayarlayın. ADC ile kimlik bilgilerinizi bulmak için
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini özel anahtar JSON dosyasının yoluna ayarlayın. Örneğin:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
ADC ile kimlik doğrulama hakkında daha fazla bilgi için Uygulamanıza kimlik bilgileri sağlama bölümünü okuyun.
- Gradle'a hizmet hesabı anahtarınızı iletmek için
Projenizin kimliğini nasıl doğrulayacağınıza ilişkin talimatlar için Firebase CLI ile oturum açma bölümüne bakın.
3. Adım. Dağıtım özelliklerinizi yapılandırın
Modül (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts
veya <project>/<app-module>/build.gradle
), Uygulama Dağıtımını en az ekleyerek yapılandırın bir firebaseAppDistribution
bölümü.
Örneğin, release
derlemesini test kullanıcılarına dağıtmak için şu talimatları izleyin:
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" } } } // ... }
Yapı türleri ve ürün çeşitleri için Uygulama Dağıtımını yapılandırabilirsiniz.
Örneğin, "demo" ve "tam" ürün çeşitlerinde debug
ve release
yapıları dağıtmak için şu talimatları izleyin:
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:
Uygulama Dağıtımı Oluşturma Parametreleri | |
---|---|
appId | Uygulamanızın Firebase Uygulama Kimliği. Yalnızca Google Services Gradle eklentisi kurulu değilse gereklidir. Uygulama Kimliğini appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | Hizmet hesabı özel anahtarı JSON dosyanızı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ına giden mutlak yol. |
releaseNotes veya releaseNotesFile | Bu yapı için sürüm notları. Sürüm notlarını doğrudan veya düz metin dosyasının yolunu belirleyebilirsiniz. |
testers veya testersFile | Derlemeleri dağıtmak istediğiniz test edicilerin e-posta adresleri. Test kullanıcılarını virgülle ayrılmış bir e-posta adresi listesi olarak belirtebilirsiniz: testers="ali@example.com, bri@example.com, cal@example.com" Veya virgülle ayrılmış e-posta adresleri listesi içeren bir dosyanın yolunu 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 kullanılarak belirtilir Grup takma adlarının virgülle ayrılmış bir listesi olarak grupları belirtebilirsiniz: groups="qa-team, android-testers" Ya da grup takma adlarının virgülle ayrılmış listesini içeren bir dosyanın yolunu belirleyebilirsiniz: groupsFile="/path/to/tester-groups.txt" |
stacktrace | Kullanıcı istisnaları için yığın izini yazdırır. Bu, sorunları ayıklarken yardımcı olur. |
4. Adım. Uygulamanızı test kullanıcılarına dağıtın
Son olarak, test uygulamanızı paketlemek ve test kullanıcılarını davet etmek için
BUILD-VARIANT
veappDistributionUpload BUILD-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şidi ve yapı türüdür. Ürün aromaları hakkında daha fazla bilgi için Yapı çeşitlerini yapılandırma bölümüne bakın.Örneğin, uygulamanızı
release
oluşturma varyantını kullanarak dağıtmak için aşağıdaki komutu çalıştırın:./gradlew bundleRelease appDistributionUploadRelease
Veya Google Hesabınızla kimlik doğrulaması yaptı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
--<property-name>=<property-value>
biçiminde komut satırı bağımsız değişkenleri ileterekbuild.gradle
dosyanızda ayarlanan değerleri de geçersiz kılabilirsiniz. Örneğin:App Distribution'a bir hata ayıklama derlemesi yüklemek için:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Ek test kullanıcılarını davet etmek veya mevcut test kullanıcılarını Firebase projenizden 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, bunları ayrı sürümlere ekleyebilirsiniz. Kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez, ancak sürümlerinize erişimlerini belirli bir süre için koruyabilirler.
Test kullanıcılarını
--emails
yerine--file="/path/to/testers.txt"
kullanarak da belirtebilirsiniz.appDistributionAddTesters
veappDistributionRemoveTesters
görevleri ayrıca 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 eylemi tarafından kullanılan bağımsız değişkenin aynısıdır.
Gradle eklentisi, sürüm yüklemesinden sonra aşağıdaki bağlantıları verir. Bu bağlantılar, ikili dosyaları yönetmenize ve test edicilerin ve diğer geliştiricilerin doğru sürüme sahip olmalarını sağlamanıza yardımcı olur:
-
firebase_console_uri
- Tek bir sürümü görüntüleyen Firebase konsolu bağlantısı. Bu bağlantıyı kuruluşunuzdaki diğer geliştiricilerle paylaşabilirsiniz. -
testing_uri
- Test kullanıcı deneyimindeki (Android yerel uygulaması) sürüme, test kullanıcılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanıyan bir bağlantı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişmesi gerekir. -
binary_download_uri
- Uygulama ikili dosyasını (APK veya AAB dosyası) doğrudan indiren ve yükleyen imzalı bir bağlantı. Bağlantı bir saat sonra sona erer.
Yapınızı dağıttıktan sonra, Firebase konsolunun Uygulama Dağıtım panosunda 150 gün (beş ay) kullanılabilir hale gelir. Derlemenin süresinin dolmasına 30 gün kala, hem konsolda hem de test cihazınızın test cihazındaki derlemeler listesinde bir son kullanma bildirimi görünür.
Uygulamayı test etmeye davet edilmemiş olan test kullanıcıları, başlamak için e-posta davetleri alır ve mevcut test kullanıcıları, yeni bir yapının test edilmeye hazır olduğuna dair e-posta bildirimleri alır (test uygulamasının nasıl kurulacağına ilişkin talimatlar için test kullanıcısı kurulum kılavuzunu okuyun). Her test kullanıcısının durumunu (daveti kabul edip etmediklerini ve uygulamayı indirip indirmediklerini) Firebase konsolunda izleyebilirsiniz.
Test kullanıcılarının, uygulamayı süresi dolmadan önce test etme davetini kabul etmeleri için 30 günleri vardır. Davetiyenin süresinin dolmasına 5 gün kaldığında, Firebase konsolunda bir sürümde test kullanıcısının yanında bir süre sonu bildirimi görünür. Bir 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ız hakkında (ekran görüntüleri dahil) geri bildirim göndermesini kolaylaştırmak için uygulama içi geri bildirim uygulayın.
Uygulamanızın yeni sürümleri yüklenebilir olduğunda test kullanıcılarınıza uygulama içi uyarıları nasıl göstereceğinizi öğrenin.
Uygulama paketi sürümlerinin nasıl adım adım dağıtılacağını öğrenmek için Android App Bundle kod laboratuvarını ziyaret edin.
CI/CD kullanarak Android uygulamalarını QA test uzmanlarına dağıtmak için en iyi uygulamaları öğrenin.