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ılavuz, App Distribution Gradle eklentisini kullanarak APK'ların test kullanıcılarına nasıl dağıtılacağını açıklamaktadır.

Sen başlamadan önce

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

Başka bir Firebase ürünü kullanmıyorsanız yalnızca bir proje oluşturup uygulamanızı kaydetmeniz yeterlidir. 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 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 = "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"
          }
      }
  }

  // ...
}

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, projenizin Gradle sarmalayıcısıyla BUILD-VARIANT ve appDistributionUpload BUILD-VARIANT hedeflerini 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 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. 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="APK"
      
    • 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