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

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ılavuzda, Android App Bundle'ların (AAB'ler) App Distribution Gradle eklentisini kullanarak test kullanıcılarına nasıl dağıtılacağı açıklanmaktadır.

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ı için optimize edilmiş, optimize edilmiş APK'ları (Google Play tarafından sunulan) çalıştırın.

  • Cihaza özgü sorunları ortaya çıkarın ve hata ayıklayın.

  • Play Özellik Yayını ve Play Varlık Yayını gibi uygulama paketi özelliklerini test edin.

  • Test kullanıcılarınız için indirmelerin boyutunu azaltın.

Gerekli izinler

AAB'leri Uygulama Dağıtımı'na 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şiminiz yoksa Firebase proje Sahibinden, Firebase konsolu IAM ayarları aracılığıyla size uygun rolü atamasını isteyebilirsiniz. Bir Sahip bulma veya atama da dahil olmak üzere Firebase projenize erişimle ilgili sorularınız varsa "İzinler ve Firebase projelerine erişim" SSS'sini 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 konsolundaki işlem Gerekli IAM izni Varsayılan olarak gerekli izinleri içeren IAM rolleri Gerekli ek roller
Firebase uygulamasını Google Play'deki 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 Uygulama Dağıtımına Yükleme firebaseappdistro.releases.update Aşağıdaki rollerden biri: ––

Sen başlamadan önce

  1. Henüz yapmadıysanız Android projenize Firebase'i ekleyin . Bu iş akışının sonunda Firebase projenizde bir Firebase Android Uygulamasına sahip olacaksınız.

    Başka bir Firebase ürünü kullanmıyorsanız yalnızca 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 gereksinimleri karşıladığından emin olun:

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

    • Google Play'deki uygulama , uygulama kontrol panelinde kurulur ve Google Play parçaları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ınlanır: 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 şuraya gidin: Proje ayarları ve ardından Entegrasyonlar sekmesini seçin.

    2. Google Play kartında Bağlantı'yı tıklayın.
      Zaten Google Play'e bağlantılarınız varsa bunun yerine Yönet'i tıklayın.

    3. Uygulama Dağıtımı entegrasyonunu etkinleştirmek ve Google Play'e hangi Firebase Android Uygulamalarının bağlanacağını seçmek için ekrandaki talimatları izleyin.

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

1. Adım. Android projenizi ayarlayın

  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.1" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.1.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.1' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.1.0' apply false
    }
    
  2. 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'
    }
    
  3. 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.

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 = "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 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 google-services.json dosyasında veya Firebase konsolunun Genel Ayarlar sayfasında bulabilirsiniz. build.gradle dosyanızdaki değer google-services eklentisinden gelen değer çıktısını 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ını 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 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 grup takma adları Firebase App Distribution konsolundaki Test Cihazları sekmesinde bulabilirsiniz.

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.

testDevices veya testDevicesFile

Aşağıdaki dağıtım türleri Otomatik test cihazı beta özelliğinin bir parçasıdır.

Yapıları 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"

Veya noktalı virgülle ayrılmış aygıt özellikleri listesini içeren bir dosyanın yolunu belirtebilirsiniz:

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

Otomatik testler sırasında kullanılacak otomatik oturum açma kullanıcı adı.

testPassword

Otomatik testler sırasında kullanılacak otomatik oturum açma şifresi.

testUsernameResource

Otomatik testler sırasında kullanılacak otomatik oturum açmaya yönelik kullanıcı adı alanının kaynak adı.

testPasswordResource

Otomatik testler sırasında kullanılacak otomatik oturum açma parolası 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.

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 BUILD-VARIANT ve appDistributionUpload 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 ç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 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
    
  2. Ayrıca build.gradle dosyanızda ayarlanan değerleri --<property-name>=<property-value> biçimindeki komut satırı argümanlarını 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="AAB"
      
    • 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 ve appDistributionRemoveTesters 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 edilmemiş 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 yükleneceği ile ilgili 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