欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

Dystrybuuj aplikacje na Androida do testerów za pomocą Gradle

Dystrybucję aplikacji można zintegrować z procesem tworzenia systemu Android za pomocą wtyczki App Distribution Gradle. Wtyczka umożliwia określenie testerów i informacji o wersji w pliku build.gradle aplikacji, umożliwiając konfigurowanie dystrybucji dla różnych typów kompilacji i wariantów aplikacji.

W tym przewodniku opisano, jak rozpowszechniać pakiety APK testerom za pomocą wtyczki App Distribution Gradle.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .

Jeśli nie używasz innych produktów Firebase, wystarczy, że utworzysz projekt i zarejestrujesz swoją aplikację. Jeśli jednak zdecydujesz się na korzystanie z dodatkowych produktów w przyszłości, pamiętaj o wykonaniu wszystkich kroków na stronie, do której prowadzi link powyżej.

Krok 1. Skonfiguruj swój projekt na Androida

  1. W pliku Gradle na poziomie głównym (na poziomie projektu) ( <project>/build.gradle ) dodaj wtyczkę App Distribution Gradle jako zależność buildscript:

    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.14'
    
            // Add the dependency for the App Distribution Gradle plugin
            classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3'
        }
    }
  2. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle ) dodaj wtyczkę App Distribution Gradle:

    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. Jeśli korzystasz z firmowego serwera proxy lub zapory sieciowej, dodaj następującą właściwość systemową Java, która umożliwia aplikacji App Distribution przesyłanie Twoich dystrybucji do Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

Krok 2. Uwierzytelnij się w Firebase

Aby móc korzystać z wtyczki Gradle, musisz najpierw uwierzytelnić się w projekcie Firebase na jeden z poniższych sposobów. Domyślnie wtyczka Gradle szuka danych logowania z interfejsu Firebase CLI, jeśli nie jest używana żadna inna metoda uwierzytelniania.

Krok 3. Skonfiguruj właściwości dystrybucji

  1. W pliku app/build.gradle skonfiguruj dystrybucję aplikacji, dodając co najmniej jedną sekcję firebaseAppDistribution . Na przykład, aby dystrybuować kompilację release do testerów:

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    artifactType="APK"
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    
  2. Dystrybucję aplikacji można skonfigurować pod kątem typów kompilacji i smaków produktów . Na przykład, aby rozpowszechniać kompilacje debug i release w wersjach „demo” i „pełna”:

    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"
              }
          }
        }
    
        // ...
    }
    
  3. Użyj następujących parametrów, aby skonfigurować dystrybucję:

Parametry kompilacji dystrybucji aplikacji
appId

Identyfikator aplikacji Firebase Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz zainstalowanej wtyczki Google Services Gradle. Identyfikator aplikacji znajdziesz w pliku google-services.json lub w konsoli Firebase na stronie Ustawienia ogólne . Wartość w pliku build.gradle zastępuje dane wyjściowe z wtyczki google-services .

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

Ścieżka do pliku JSON z kluczem prywatnym konta usługi. Wymagane tylko w przypadku korzystania z uwierzytelniania konta usługi.

artifactType

Określa typ pliku aplikacji. Można ustawić na "AAB" lub "APK" .

artifactPath

Bezwzględna ścieżka do pliku APK lub AAB, który chcesz przesłać.

releaseNotes lub releaseNotesFile

Informacje o wersji dla tej kompilacji.

Możesz określić informacje o wersji bezpośrednio lub ścieżkę do zwykłego pliku tekstowego.

testers lub testersFile

Adresy e-mail testerów, którym chcesz dystrybuować kompilacje.

Możesz określić testerów jako listę adresów e-mail oddzielonych przecinkami:

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

Możesz też określić ścieżkę do pliku zawierającego rozdzieloną przecinkami listę adresów e-mail:

testersFile="/path/to/testers.txt"
groups lub groupsFile

Grupy testerów, do których chcesz dystrybuować kompilacje (zobacz Zarządzanie testerami ). Grupy są określone za pomocą aliasy grupowe , który można znaleźć w zakładce Testerzy w konsoli Firebase App Distribution.

Możesz określić grupy jako listę oddzielonych przecinkami aliasów grup:

groups="qa-team, android-testers"

Możesz też określić ścieżkę do pliku zawierającego oddzieloną przecinkami listę aliasów grup:

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

Drukuje ślad stosu dla wyjątków użytkownika. Jest to pomocne podczas debugowania problemów.

Krok 4. Rozpowszechnij swoją aplikację wśród testerów

  1. Na koniec, aby spakować aplikację testową i zaprosić testerów, skompiluj cele BUILD-VARIANT i appDistributionUpload BUILD-VARIANT za pomocą Gradle wrapper projektu, gdzie BUILD-VARIANT jest opcjonalnym smakiem produktu i typem kompilacji skonfigurowanym w poprzednim kroku. Aby uzyskać więcej informacji o wariantach produktów, zobacz Konfigurowanie wariantów kompilacji .

    Na przykład, aby rozpowszechniać aplikację przy użyciu wariantu kompilacji release , uruchom następujące polecenie:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    Lub, jeśli uwierzytelniłeś się za pomocą swojego konta Google i nie podałeś danych logowania w pliku kompilacji Gradle, dołącz zmienną FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. Możesz również zastąpić wartości ustawione w pliku build.gradle , przekazując argumenty wiersza polecenia w postaci --<property-name>=<property-value> . Na przykład:

    • Aby przesłać kompilację debugowania do dystrybucji aplikacji:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Aby zaprosić dodatkowych testerów lub usunąć istniejących testerów z projektu Firebase:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      Po dodaniu testera do projektu Firebase możesz dodać go do poszczególnych wersji. Usunięci testerzy nie będą już mieli dostępu do wydań w Twoim projekcie, ale mogą zachować dostęp do wydań przez pewien czas.

    Możesz również określić testerów za pomocą --file="/path/to/testers.txt" zamiast --emails .

    Zadania appDistributionAddTesters i appDistributionRemoveTesters również akceptują następujące argumenty:

    • projectNumber : numer Twojego projektu Firebase.

    • serviceCredentialsFile : ścieżka do pliku danych logowania usługi Google. Jest to ten sam argument, którego używa akcja przesyłania.

Po rozesłaniu kompilacji staje się ona dostępna w panelu dystrybucji aplikacji konsoli Firebase przez 150 dni (pięć miesięcy). Gdy kompilacja upłynie 30 dni od wygaśnięcia, powiadomienie o wygaśnięciu pojawi się zarówno w konsoli, jak i na liście kompilacji testera na urządzeniu testowym.

Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymują zaproszenia e-mail, aby rozpocząć, a dotychczasowi testerzy otrzymują powiadomienia e-mail, że nowa kompilacja jest gotowa do testowania (przeczytaj przewodnik konfiguracji testera, aby uzyskać instrukcje dotyczące instalowania aplikacji testowej). Możesz monitorować stan każdego testera – czy zaakceptował zaproszenie i czy pobrał aplikację – w konsoli Firebase.

Testerzy mają 30 dni na zaakceptowanie zaproszenia do przetestowania aplikacji przed jej wygaśnięciem. Po upływie 5 dni od wygaśnięcia zaproszenia w konsoli Firebase obok testera wersji pojawia się informacja o wygaśnięciu. Zaproszenie można odnowić, wysyłając je ponownie za pomocą menu rozwijanego w wierszu testera.

Następny krok

Odwiedź laboratorium kodowania Android App Bundle, aby dowiedzieć się, jak krok po kroku rozpowszechniać wersje pakietów aplikacji.