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

App Distribution Gradle eklentisini kullanarak App Distribution'ı Android oluşturma işleminize entegre edebilirsiniz. Eklenti, test cihazlarınızı ve sürüm notlarınızı uygulamanızın build.gradle dosyasında belirtmenize izin vererek, uygulamanızın farklı derleme türleri ve varyantları 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çıklar.

Sen başlamadan önce

Henüz yapmadıysanız, Firebase'i Android projenize ekleyin .

Başka bir Firebase ürünü kullanmıyorsanız, yalnızca bir proje oluşturmanız ve uygulamanızı kaydetmeniz gerekir. 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 kurun

  1. Kök düzeyinde (proje düzeyinde) Gradle dosyanıza ( <project>/build.gradle veya <project>/build.gradle.kts ), App Distribution Gradle eklentisini bir buildscript bağımlılığı olarak ekleyin:

    harika

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath 'com.android.tools.build:gradle:7.2.0'
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath 'com.google.gms:google-services:4.3.15'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0'
      }
    }
    

    Kotlin

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath("com.android.tools.build:gradle:7.2.0")
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath("com.google.gms:google-services:4.3.15")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:4.0.0")
      }
    }
    
  2. Modül (uygulama düzeyinde) Gradle dosyanıza (genellikle <project>/<app-module>/build.gradle veya <project>/<app-module>/build.gradle.kts ), App Distribution Gradle eklentisini ekleyin:

    harika

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

    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")
    }
    
  3. Kurumsal bir proxy 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ğrulayı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ılmıyorsa Firebase CLI'den kimlik bilgilerini arar.

3. Adım. Dağıtım özelliklerinizi yapılandırın

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

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

harika

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

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 çeşitleri için Uygulama Dağıtımını yapılandırabilirsiniz.

Örneğin, "demo" ve "tam" ürün çeşitlerinde debug ve release yapıları dağıtmak için şu talimatları izleyin:

harika

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

  // ...
}

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

  // ...
}

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 kurulu değilse gereklidir. Uygulama Kimliğini google-services.json dosyasında veya Genel Ayarlar sayfasındaki Firebase konsolunda 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ı ö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ına giden mutlak yol.

releaseNotes veya releaseNotesFile

Bu yapı için sürüm notları.

Sürüm notlarını doğrudan veya düz metin dosyasının yolunu belirleyebilirsiniz.

testers veya testersFile

Derlemeleri dağıtmak istediğiniz test edicilerin e-posta adresleri.

Test kullanıcılarını virgülle ayrılmış bir e-posta adresi listesi olarak belirtebilirsiniz:

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

Veya virgülle ayrılmış e-posta adresleri listesi 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ı (bkz. Test kullanıcılarını yönetme ). Gruplar kullanılarak belirtilir grup takma adları , Firebase Uygulama Dağıtımı konsolundaki Test Cihazları sekmesinde bulabilirsiniz.

Grup takma adlarının virgülle ayrılmış bir listesi olarak grupları belirtebilirsiniz:

groups="qa-team, android-testers"

Ya da grup takma adlarının virgülle ayrılmış listesini içeren bir dosyanın yolunu belirleyebilirsiniz:

groupsFile="/path/to/tester-groups.txt"
stacktrace

Kullanıcı istisnaları için yığın izini yazdırır. Bu, sorunları ayıklarken yardımcı olur.

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 aromaları hakkında daha fazla bilgi için Yapı çeşitlerini yapılandırma bölümüne bakın.

    Örneğin, uygulamanızı release oluşturma 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
    
  2. --<property-name>=<property-value> biçiminde komut satırı bağımsız değişkenleri ileterek build.gradle dosyanızda ayarlanan değerleri de geçersiz kılabilirsiniz. Örneğin:

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

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Ek test kullanıcılarını 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 bir test kullanıcısı eklendikten sonra, bunları ayrı sürümlere ekleyebilirsiniz. Kaldırılan test kullanıcıları artık projenizdeki sürümlere erişemez, ancak sürümlerinize erişimlerini belirli bir süre için koruyabilirler.

    Test kullanıcılarını --emails yerine --file="/path/to/testers.txt" kullanarak da belirtebilirsiniz.

    appDistributionAddTesters ve appDistributionRemoveTesters görevleri ayrıca aşağıdaki bağımsız değişkenleri kabul eder:

    • projectNumber : Firebase proje numaranız.

    • serviceCredentialsFile : Google hizmeti kimlik bilgileri dosyanızın yolu. Bu, yükleme eylemi tarafından kullanılan bağımsız değişkenin aynısıdır.

Gradle eklentisi, sürüm yüklemesinden sonra aşağıdaki bağlantıları verir. Bu bağlantılar, ikili dosyaları yönetmenize ve test edicilerin ve diğer geliştiricilerin doğru sürüme sahip olmalarını sağlamanıza yardımcı olur:

  • firebase_console_uri - Tek bir sürümü görüntüleyen Firebase konsolu bağlantısı. Bu bağlantıyı kuruluşunuzdaki diğer geliştiricilerle paylaşabilirsiniz.
  • testing_uri - Test kullanıcı deneyimindeki (Android yerel uygulaması) sürüme, test kullanıcılarının sürüm notlarını görüntülemesine ve uygulamayı cihazlarına yüklemesine olanak tanıyan bir bağlantı. Test kullanıcısının bağlantıyı kullanabilmesi için sürüme erişmesi gerekir.
  • binary_download_uri - Uygulama ikili dosyasını (APK veya AAB dosyası) doğrudan indiren ve yükleyen imzalı bir bağlantı. Bağlantı bir saat sonra sona erer.

Yapınızı dağıttıktan sonra, Firebase konsolunun Uygulama Dağıtım panosunda 150 gün (beş ay) kullanılabilir hale gelir. Derlemenin süresinin dolmasına 30 gün kala, hem konsolda hem de test cihazınızın test cihazındaki derlemeler listesinde bir son kullanma bildirimi görünür.

Uygulamayı test etmeye davet edilmemiş olan test kullanıcıları, başlamak için e-posta davetleri 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 kullanıcısı kurulum kılavuzunu okuyun). Her test kullanıcısının durumunu (daveti kabul edip etmediklerini ve uygulamayı indirip indirmediklerini) Firebase konsolunda izleyebilirsiniz.

Test kullanıcılarının, uygulamayı süresi dolmadan önce test etme davetini kabul etmeleri için 30 günleri vardır. Davetiyenin süresinin dolmasına 5 gün kaldığında, Firebase konsolunda bir sürümde test kullanıcısının yanında 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