Gradle'ı kullanarak Android uygulamalarını test kullanıcılarına dağıtma


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 Android App Bundle'ları (AAB'ler) test kullanıcılarına nasıl dağıtacağınız 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ş APK'ları (Google Play tarafından sunulur) çalıştırın.

  • Cihaza özgü sorunları tespit edip hata ayıklama

  • Play Feature Delivery ve Play Asset Delivery gibi uygulama paketi özelliklerini test edin.

  • Test kullanıcılarınızın indirme boyutunu küçültün.

Gerekli izinler

App Distribution hizmetine AAB yüklemek için Firebase uygulamanızı Google Play hizmetindeki 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 bulma veya atama dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "Firebase projelerine erişim ve izinler" SSS bölümünü inceleyin.

Aşağıdaki tablo, bir Firebase uygulamasını Google Play uygulamasındaki bir uygulamaya bağlamanın yanı sıra AAB'leri yüklemek için de geçerlidir.

Firebase konsolundaki işlem Gerekli IAM izni Varsayılan olarak gerekli izinleri içeren IAM rolleri Gerekli ek roller
Bir Firebase uygulamasını Google Play uygulamasındaki bir uygulamaya bağlama firebase.playLinks.update Aşağıdaki rollerden biri: Google Play geliştirici hesabına yönetici olarak erişim
AAB'leri App Distribution uygulamasına yükleyin firebaseappdistro.releases.update Aşağıdaki rollerden biri: ––

Başlamadan önce

  1. 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 Firebase ürünleri kullanmıyorsanız yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz yeterlidir. Ek ürünler kullanmaya karar verirseniz Android projenize Firebase ekleme bölümündeki tüm adımları tamamladığınızdan emin olun.

  2. 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.

  3. 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.

  4. Firebase Android uygulamanızı Google Play geliştirici hesabınıza bağlama:

    1. Firebase konsolunda Proje ayarları'na gidin ve Entegrasyonlar sekmesini seçin.

    2. 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.

    3. 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ğlanma hakkında daha fazla bilgi edinin.

1. Adım: Android projenizi oluşturma

  1. 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.5.0" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.3.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.5.0' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.3.1' apply false
    }
  2. Modülünüzün (uygulama düzeyinde) 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'
    }
  3. 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 = "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"
          }
      }
  }

  // ...
}

Derleme türleri ve ürün türleri için App Distribution özelliğini yapılandırabilirsiniz.

Örneğin, "demo" ve "tam" ürün türlerinde debug ve release derlemelerini 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 google-services.json dosyasında veya Firebase konsolundaki Genel Ayarlar sayfasında bulabilirsiniz. build.gradle dosyanızdaki değer, google-services eklentisinden çıkan değeri geçersiz kılar.

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. "AAB" veya "APK" olarak ayarlanabilir.

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 veya düz metin dosyasının yolunu belirterek ekleyebilirsiniz.

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 App Distribution konsolundaki Test kullanıcıları sekmesinde bulabileceğiniz grup takma adları kullanılarak belirtilir.

Grupları, grup takma adlarının virgülle ayrılmış listesi olarak belirtebilirsiniz:

groups="qa-team, android-testers"

Alternatif olarak, virgülle ayrılmış grup takma adları listesi 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 ajanı 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

  1. Son olarak, test uygulamanızı paketlemek ve test kullanıcılarını davet etmek için projenizin Gradle sarmalayıcısıyla BUILD-VARIANT ve appDistributionUploadBUILD-VARIANT hedeflerini 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ı release derleme değişkenini kullanarak dağıtmak için aşağıdaki komutu çalıştırın:

    ./gradlew bundleRelease 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_TOKEN değişkenini ekleyin:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. Ayrıca, --<property-name>=<property-value> biçiminde komut satırı bağımsız değişkenleri ileterek build.gradle dosyanı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="AAB"
    • Firebase projenize daha fazla test kullanıcısı 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ı --emails yerine --file="/path/to/testers.txt" kullanarak da belirtebilirsiniz.

    appDistributionAddTesters ve appDistributionRemoveTesters gö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ılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanıyan, test kullanıcısı deneyimindeki (yerleşik Android uygulaması) sürüme yönlendiren bir bağlantı. 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 Console'un 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. Mevcut test kullanıcıları ise yeni bir derlemenin test edilmeye hazır olduğunu bildiren e-posta bildirimleri alır (test uygulamasının nasıl yükleneceğiyle ilgili 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 Console'da 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