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


App Distribution özelliğini Android derleme sürecinize entegre etmek için App Distribution Gradle eklentisi. Eklenti, test kullanıcılarınızı belirtmenize ve uygulamanızın Gradle dosyasındaki sürüm notları sayesinde dağıtımları ve varyantlarını da test edebilirsiniz.

Bu kılavuzda, APK'ların App Distribution Gradle eklentisi.

Başlamadan önce

Henüz yapmadıysanız Firebase'i Android cihazınıza ekleyin inceleyebilirsiniz.

Başka bir Firebase ürünü kullanmıyorsanız yalnızca bir projenizi ve uygulamanızı kaydedin. Ancak, ek gelecekte ürünler satın almak istiyorsanız sayfadaki tüm adımları tamamladığınızdan yukarıda bağlantılıdır.

1. Adım. Android projenizi oluşturma

  1. Kök düzeyindeki (proje düzeyinde) Gradle dosyanızda (<project>/build.gradle.kts veya <project>/build.gradle), Bağımlılık olarak App Distribution Gradle eklentisi:

    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 (uygulama düzeyi) 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 aşağıdakileri ekleyin Java sistem özelliği App Distribution için dağıtımlarınızı Firebase'e yüklemenizi sağlar:

    -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 biriyle Firebase projenizle kimlik doğrulamanız gerekir. Varsayılan olarak Gradle eklentisi başka bir kimlik doğrulama işlemi yoksa Firebase KSA'nın kimlik bilgilerini arar yöntemi kullanılır.

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

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

Örneğin, release derlemesini test kullanıcılarına dağıtmak için şu talimatları uygulayın: talimatlar:

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

  // ...
}

App Distribution öğesini derleme türleri ve ürün varyantları için yapılandırabilirsiniz.

Örneğin, debug ve release derlemelerini "demo" ve "tam" ürün varyasyonlarında 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 metriğinizdeki değer dosyası, google-services öğesindeki değeri geçersiz kılar eklentisidir.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

Hizmet hesabı özel anahtarı JSON dosyanızın yolu. Yalnızca zorunlu hizmet hesabı kimlik doğrulaması kullanıyorsanız.

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ına giden yol.

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 listesi olarak belirtebilirsiniz adresler:

testers="ali@example.com, bri@example.com, cal@example.com"

Dilerseniz 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ı, virgülle ayrılmış bir grup listesi olarak belirtebilirsiniz takma adlar:

groups="qa-team, android-testers"

Alternatif olarak, virgülle ayrılmış bir dosyanın yolunu belirtebilirsiniz grup takma adları listesi:

groupsFile="/path/to/tester-groups.txt"
testDevices veya testDevicesFile

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

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

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

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

Alternatif olarak, cihaz özelliklerinin noktalı virgül ile ayrılmış bir listesini içeren dosyanın yolunu da belirtebilirsiniz:

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

Otomatik testler sırasında kullanılacak otomatik giriş için 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ş için kullanıcı adı alanının kaynak adı.

testPasswordResource

Otomatik testler sırasında kullanılacak otomatik giriş için şifre alanının kaynak adı.

testNonBlocking

Otomatik testleri asynkron olarak çalıştırın. Otomatik test sonuçları için Firebase konsolunu ziyaret edin.

stacktrace

Kullanıcı istisnaları için yığın izlemeyi yazdırır. Bu adım, hata ayıklama sorunları.

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 appDistributionUploadBUILD-VARIANT projenin Gradle sarmalayıcısı (burada BUILD-VARIANT isteğe bağlıdır). ürün aromasını ve derleme türünü değiştirin. Ürün aromaları hakkında daha fazla bilgi için şu sayfaya bakın: Derleme varyantlarını yapılandırın.

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

    ./gradlew assembleRelease 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 assembleRelease appDistributionUploadRelease
    
  2. Ayrıca, build.gradle dosyanızda ayarlanan değerleri biçiminde komut satırı bağımsız değişkenleri --<property-name>=<property-value>. Örneğin:

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

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
    • Daha fazla test kullanıcısı 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 eklenen test kullanıcılarını 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 boyunca sürümlerinize erişmeye devam edebilir.

    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 edin:

    • projectNumber: Firebase proje numaranız.

    • serviceCredentialsFile: Google hizmet kimlik bilgileri dosyanızın yolu. Bu, yükleme işlemi tarafından kullanılanla aynı bağımsız değişkendir.

Gradle eklentisi, sürüm yüklendikten sonra aşağıdaki bağlantıları görüntüler. Bu bağlantılar, ikili dosyaları yönetmenize ve test kullanıcılarının ve diğer geliştiricilerin doğru sürümü kullandığından emin olmanıza yardımcı olur:

  • firebase_console_uri: Tek bir sürümü gösteren Firebase konsolunun bağlantısı. Bu bağlantıyı diğer geliştiricilerle şurada paylaşabilirsiniz: org.
  • testing_uri: Test kullanıcısı deneyimindeki (Android yerel uygulaması) sürümün bağlantısı. Bu bağlantı, test kullanıcılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanır. Test kullanıcısının şunlara erişmesi gerekiyor: bu bağlantıyı kullanabilirsiniz.
  • binary_download_uri: Uygulama ikilisini (APK veya AAB dosyası) doğrudan indirip yükleyen imzalı bir bağlantıdır. Bağlantının süresi şu tarihten sonra dolar: saat.

Derlemenizi dağıttıktan sonra tekrar Firebase konsolunun 150 gün (beş ay) App Distribution kontrol paneli. Derlemenin süresinin dolmasına 30 gün kaldığında hem kontrol edin.

Uygulamayı test etmek üzere davet edilmemiş test kullanıcıları ve mevcut test kullanıcıları yeni bir derlemenin başlatılacağına dair test etmeye hazır ( test cihazı kurulum kılavuzu testin nasıl yükleneceğiyle ilgili talimatlar için uygulamasında). Her test kullanıcısının durumunu (daveti kabul edip etmediğini ve uygulamayı indirip indirmediğini) Firebase konsolunda izleyebilirsiniz.

Test kullanıcılarının, uygulamayı test etme davetini kabul etmek için 30 günü vardır. Bir davetin geçerlilik süresi 5 gün içinde sona erecekse Firebase konsolunda, sürümdeki 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üyü kullanarak yeniden göndererek yenilenir.

Sonraki adımlar