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

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 varyantları için dağıtımları yapılandırmanıza olanak tanır.

Bu kılavuzda, App Distribution Gradle eklentisini kullanarak 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 için Google Play'in dahili uygulama paylaşım hizmetiyle entegre olur. AAB dağıtma, aşağıdakileri yapmanıza olanak tanır:

  • Test kullanıcılarınızın cihazları için optimize edilmiş optimize edilmiş APK'ları (Google Play tarafından sunulan) çalıştırın.

  • Cihaza özgü sorunları bulun ve hataları ayıklayın.

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

  • Test kullanıcılarınız için indirmelerin boyutunu küçültü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 işlemleri gerçekleştirmek için gereken erişim düzeyine sahip olmanız gerekir.

Gerekli Firebase erişimine sahip değilseniz bir Firebase projesi sahibinden Firebase konsolu IAM ayarları aracılığıyla size geçerli rolü atamasını isteyebilirsiniz. Sahip bulma veya sahip atama da dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "Firebase projelerine izinler ve erişim" ile ilgili SSS bölümünü inceleyin.

Aşağıdaki tablo, Firebase uygulamasını Google Play'deki bir uygulamaya bağlama ve AAB yükleme işlemleri için geçerlidir.

Firebase konsolundaki işlem Gerekli IAM izni Varsayılan olarak gerekli izinleri içeren IAM rolleri Gerekli diğer roller
Firebase uygulamasını Google Play'de 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'a yükleme 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 uygulaması olacak.

    Başka bir Firebase ürünü kullanmıyorsanız bir proje oluşturup uygulamanızı kaydetmeniz yeterlidir. Ek ürünler kullanmaya karar verirseniz Firebase'i Android projenize ekleme bölümündeki tüm adımları tamamladığınızdan emin olun.

  2. Google Play'e Firebase bağlantısı oluşturmak ve AAB'leri yüklemek için uygulamanızın aşağıdaki şartları karşıladığından emin olun:

    • Hem Google Play'deki uygulama hem de Firebase Android uygulaması aynı paket adı kullanılarak kaydedilmiştir.

    • Google Play'deki uygulama, uygulama kontrol panelinde oluşturulur ve Google Play kanallarından birine (Dahili test, Kapalı test, Açık test veya Üretim) dağıtılmıştır.

    • Uygulamanın Google Play'deki incelemesi tamamlanmış ve uygulama yayınlanmış olmalıdır. Uygulama durumu sütununda şu durumlardan biri gösteriliyorsa uygulamanız yayınlanmış demektir: Dahili test (Taslak dahili test değil), Kapalı test, Açık test veya Üretim.

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

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

    2. Google Play kartında Bağlan'ı tıklayın.
      Google Play bağlantılarınız zaten varsa Yönet'i tıklayın.

    3. App Distribution entegrasyonunu etkinleştirmek için ekrandaki talimatları uygulayın ve Google Play'e hangi Firebase Android uygulamalarının bağlanacağını seçin.

    Google Play'e bağlama hakkında daha fazla bilgi edinin.

1. adım: Android projenizi oluşturun

  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.4.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.4.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' apply false
    }
    
  2. Modülünüze (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'
    }
    
  3. Kurumsal bir proxy'nin 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ğrulama

Gradle eklentisini kullanmadan önce aşağıdaki yöntemlerden biriyle Firebase projenizde kimlik doğrulaması yapmanız gerekir. Gradle eklentisi, varsayılan olarak başka bir kimlik doğrulama yöntemi kullanılmadığında Firebase CLI'dan kimlik bilgilerini arar.

3. adım: Dağıtım özelliklerinizi yapılandırma

Modül (uygulama düzeyi) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle), App Distribution'ı en az bir firebaseAppDistribution bölümü ekleyerek yapılandırın.

Örneğin, release derlemesini test kullanıcılarına dağıtmak için şu 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'ı derleme türleri ve ürün çeşitleri için yapılandırabilirsiniz.

Örneğin, debug ve release derlemelerini "demo" ve "tam" ürün aromalarında dağıtmak için şu 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:

Uygulama Dağıtımı Derleme Parametreleri
appId

Uygulamanızın Firebase Uygulama Kimliği. Yalnızca Google Services 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 gelen değeri geçersiz kılar.

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. "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 belirtebilir veya düz metin dosyasının yolunu belirleyebilirsiniz.

testers veya testersFile

Derlemeleri 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"

Alternatif olarak, e-posta adreslerinin virgülle ayrılmış listesini 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ı (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 belirlenir.

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

Aşağıdaki dağıtım türleri, Otomatik test kullanıcısı beta özelliği kapsamındadır.

Derlemeleri dağıtmak istediğiniz test cihazları (Otomatik testler bölümüne bakın).

Test cihazlarını, cihaz spesifikasyonlarının noktalı virgülle ayrılmış bir listesi olarak belirtebilirsiniz:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

Alternatif olarak, cihaz spesifikasyonlarının noktalı virgülle ayrılmış listesini içeren bir dosyanın yolunu belirtebilirsiniz:

testDevicesFile="/path/to/testDevices.txt"
testUsername

Otomatik testler sırasında kullanılacak otomatik giriş kullanıcı adı.

testPassword veya testPasswordFile

Otomatik testler sırasında kullanılacak otomatik giriş şifresi.

Alternatif olarak, şifre içeren bir düz metin dosyasının yolunu belirtebilirsiniz:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

Otomatik testler sırasında kullanılacak otomatik girişe yönelik kullanıcı adı alanının kaynak adı.

testPasswordResource

Otomatik testler sırasında kullanılacak otomatik giriş ş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ı için yığın izlemeyi (stack trace) yazdırır. Bu, sorunlar ayıklarken faydalıdır.

4. Adım. Uygulamanızı test kullanıcılarına dağıtın

  1. Son olarak, test uygulamanızı paketlemek ve test kullanıcılarını davet etmek için projenizin Gradle sarmalayıcısıyla hedefleri BUILD-VARIANT ve appDistributionUploadBUILD-VARIANT oluşturun. Burada BUILD-VARIANT, önceki adımda yapılandırdığınız isteğe bağlı ürün aroması ve derleme türüdür. Ürün aromaları hakkında daha fazla bilgi için Derleme varyantlarını yapılandırma bölümüne bakın.

    Örneğin, uygulamanızı release derleme varyantını kullanarak dağıtmak için aşağıdaki komutu çalıştırın:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    Google Hesabınızla kimlik doğrulaması yaptıysanız ve Gradle derleme dosyanızda kimlik bilgilerini 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, komut satırı bağımsız değişkenlerini --<property-name>=<property-value> biçiminde ileterek build.gradle dosyanızda ayarlanan değerleri geçersiz kılabilirsiniz. Örnek:

    • App Distribution'a hata ayıklama derlemesi yüklemek için:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
      
    • Firebase projenizden 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ı tek tek 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ı görüntüler. Bu bağlantılar, ikili programları yönetmenize yardımcı olup test kullanıcılarının ve diğer geliştiricilerin doğru sürüme sahip olmasını sağlar:

  • firebase_console_uri - Tek bir sürümü gösteren Firebase konsolu 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 (Android yerel uygulaması) sürüm bağlantısı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişmesi gerekir.
  • binary_download_uri - Uygulama ikili programını (APK veya AAB dosyası) doğrudan indirip yükleyen bir imzalı bağlantı. Bağlantının süresi bir saat sonra dolar.

Derlemeniz dağıtıldıktan sonra Firebase konsolunun Uygulama Dağıtımı kontrol panelinde 150 gün (beş ay) boyunca kullanılabilir hale gelir. Derlemenin süresinin dolmasından 30 gün sonra, hem konsolda hem de test kullanıcınızın test cihazındaki derleme listesinde bir geçerlilik bitiş bildirimi görünür.

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 teste hazır olduğuna dair 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 konsolunda 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 30 gün içinde uygulamayı test etme davetini süresi dolmadan kabul etmeleri gerekir. Bir davetiyenin süresinin dolmasından 5 gün sonra, Firebase konsolunda bir sürümde test kullanıcısının yanında bir geçerlilik bitiş bildirimi görünür. Davetiye, test kullanıcısı satırındaki açılır menü aracılığıyla yeniden gönderilerek yenilenebilir.

Sonraki adımlar