App Distribution Gradle eklentisini kullanarak App Distribution'ı 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ıyarak, uygulamanızın farklı derleme türleri ve çeşitleri için dağıtımları yapılandırmanıza olanak tanır.
Bu kılavuz, App Distribution Gradle eklentisini kullanarak APK'ların test kullanıcılarına nasıl dağıtılacağını açıklamaktadır.
Sen başlamadan önce
Henüz yapmadıysanız Android projenize Firebase'i ekleyin .
Başka bir Firebase ürünü kullanmıyorsanız yalnızca bir proje oluşturup uygulamanızı kaydetmeniz yeterlidir. Ancak gelecekte ek ürünler kullanmaya karar verirseniz yukarıda bağlantısı verilen sayfadaki tüm adımları tamamladığınızdan emin olun.
1. Adım. Android projenizi ayarlayın
Kök düzeyindeki (proje düzeyi) 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.0" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "4.0.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.0' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '4.0.1' apply false }
Modülünüzün (uygulama düzeyi) Gradle dosyasına (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ı arkasındaysanız App Distribution'ın dağıtımlarınızı Firebase'e yüklemesini sağlayan aşağıdaki Java sistemi özelliğini ekleyin:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
2. Adım. Firebase ile kimlik doğrulaması yapı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ılmazsa Firebase CLI'den kimlik bilgilerini arar.
Bir hizmet hesabıyla kimlik doğrulama, eklentiyi sürekli entegrasyon (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
iletin. Hizmet hesabı anahtar dosyanız derleme ortamınızda zaten varsa bu yöntemi kullanışlı bulabilirsiniz. -
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini hizmet hesabı anahtar dosyanızı işaret edecek şekilde ayarlayın. Başka bir Google hizmeti (ör. Google Cloud) için yapılandırılmış Uygulama Varsayılan Kimlik Bilgileriniz (ADC) zaten varsa bu yöntemi tercih edebilirsiniz.
Hizmet hesabı kimlik bilgilerini kullanarak kimlik doğrulamak 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ı, derleme ortamınızın erişebileceği bir konuma taşıyın. Firebase projenizdeki Uygulama Dağıtımına 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 API konsolunda Firebase App Distribution API'yi etkinleştirin. İstendiğinde Firebase projenizle aynı adı taşıyan 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 konusunu 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 konusuna bakın.
3. Adım. Dağıtım özelliklerinizi yapılandırın
Modülünüzde (uygulama düzeyi) 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
yapısını 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 = "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" } } } // ... }
Yapı türleri ve ürün tatları için Uygulama Dağıtımını yapılandırabilirsiniz.
Örneğin, debug
dağıtmak ve yapıları "demo" ve "tam" ürün çeşitlerinde release
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 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ını 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 yapıya ilişkin sürüm notları. Sürüm notlarını doğrudan veya düz metin dosyasının yolunu belirtebilirsiniz. |
testers veya testersFile | Yapıları dağıtmak istediğiniz test kullanıcılarının e-posta adresleri. Test kullanıcılarını virgülle ayrılmış e-posta adresleri listesi olarak belirtebilirsiniz: testers="ali@example.com, bri@example.com, cal@example.com" Veya virgülle ayrılmış e-posta adresleri listesini içeren bir dosyanın yolunu belirtebilirsiniz: testersFile="/path/to/testers.txt" |
groups veya groupsFile | Yapıları dağıtmak istediğiniz test kullanıcısı grupları (bkz. Test kullanıcılarını yönetme ). Gruplar kullanılarak belirtilir Grupları, grup takma adlarının virgülle ayrılmış listesi olarak belirtebilirsiniz: groups="qa-team, android-testers" Veya grup takma adlarının virgülle ayrılmış listesini içeren bir dosyanın yolunu belirtebilirsiniz: groupsFile="/path/to/tester-groups.txt" |
stacktrace | Kullanıcı istisnaları için yığın izini yazdırır. Bu, sorunları ayıklarken faydalıdır. |
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, projenizin Gradle sarmalayıcısıyla
BUILD-VARIANT
veappDistributionUpload BUILD-VARIANT
hedeflerini 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 çeşitleri hakkında daha fazla bilgi için bkz . Yapı çeşitlerini yapılandırma .Örneğin, uygulamanızı
release
derlemesi varyantını kullanarak dağıtmak için aşağıdaki komutu çalıştırın:./gradlew assembleRelease 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 assembleRelease appDistributionUploadRelease
Ayrıca
build.gradle
dosyanızda ayarlanan değerleri, komut satırı bağımsız değişkenlerini--<property-name>=<property-value>
biçiminde ileterek de geçersiz kılabilirsiniz. Örneğin:Bir hata ayıklama yapısını Uygulama Dağıtımına yüklemek için:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Firebase projenizden ek test kullanıcılarını 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 bunları ayrı ayrı sürümlere ekleyebilirsiniz. Kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez ancak bir süre daha sürümlerinize erişmeye devam edebilir.
Test kullanıcılarını
--emails
yerine--file="/path/to/testers.txt"
kullanarak da belirleyebilirsiniz.appDistributionAddTesters
veappDistributionRemoveTesters
görevleri ayrıca 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 argümanın aynısıdır.
Gradle eklentisi, sürüm yüklemesinden sonra aşağıdaki bağlantıların çıktısını verir. Bu bağlantılar ikili dosyaları yönetmenize ve test kullanıcılarının ve 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örüntüleyen Firebase konsoluna bağlantı. Bu bağlantıyı kuruluşunuzdaki diğer geliştiricilerle paylaşabilirsiniz. -
testing_uri
- Test kullanıcılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanıyan, test deneyimindeki (Android yerel uygulaması) sürüme bağlantı. Bağlantıyı kullanabilmek için test kullanıcısının sürüme erişmesi gerekiyor. -
binary_download_uri
- Uygulama ikili dosyasını (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantı. Bağlantının süresi bir saat sonra sona erer.
Derlemenizi dağıttığınızda, 150 gün (beş ay) boyunca Firebase konsolunun Uygulama Dağıtımı kontrol panelinde kullanılabilir hale gelir. Derlemenin süresinin dolmasına 30 gün kaldığında, hem konsolda hem de test kullanıcınızın test cihazındaki derlemeler listesinde bir sona erme bildirimi görünür.
Uygulamayı test etmeye davet edilmeyen test kullanıcıları, başlamak için e-posta davetiyeleri 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 cihazı kurulum kılavuzunu okuyun). Firebase konsolunda her test kullanıcısının durumunu (daveti kabul edip etmediklerini ve uygulamayı indirip indirmediklerini) izleyebilirsiniz.
Test kullanıcılarının, süresi dolmadan uygulamayı test etme davetini kabul etmek için 30 günü vardır. Davetiyenin süresinin dolmasına 5 gün kaldığında, Firebase konsolunda test kullanıcısının yanında sürümde 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üklenmeye hazır olduğunda test kullanıcılarınıza uygulama içi uyarıları nasıl görüntüleyeceğinizi öğrenin.
Uygulama paketi sürümlerini adım adım nasıl dağıtacağınızı öğrenmek için Android App Bundle kod laboratuvarını ziyaret edin.
Android uygulamalarını CI/CD kullanarak QA test kullanıcılarına dağıtmaya yönelik en iyi uygulamaları öğrenin.