Możesz zintegrować dystrybucję aplikacji z procesem kompilacji Androida za pomocą wtyczki App Distribution Gradle. Wtyczka umożliwia określenie testerów i informacji o wydaniu w pliku build.gradle
Twojej aplikacji, co pozwala skonfigurować dystrybucje dla różnych typów kompilacji i wariantów Twojej aplikacji.
W tym przewodniku opisano, jak rozsyłać pliki APK do testerów 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 żadnych innych produktów Firebase, wystarczy utworzyć projekt i zarejestrować swoją aplikację. Jeśli jednak zdecydujesz się w przyszłości korzystać z dodatkowych produktów, pamiętaj o wykonaniu wszystkich kroków na stronie, do której prowadzi link powyżej.
Krok 1. Skonfiguruj swój projekt na Androida
W pliku Gradle na poziomie głównym (na poziomie projektu) (
lub<project>/build.gradle
) dodaj wtyczkę App Distribution Gradle jako zależność buildscript:<project>/build.gradle.kts Groovy
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") } }
W pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj
lub<project>/<app-module>/build.gradle
) dodaj wtyczkę App Distribution Gradle:<project>/<app-module>/build.gradle.kts 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' }
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") }
Jeśli korzystasz z firmowego serwera proxy lub zapory sieciowej, dodaj następującą właściwość systemu Java , która umożliwia usłudze App Distribution przesyłanie dystrybucji do Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Krok 2. Uwierzytelnij w Firebase
Zanim będziesz mógł użyć wtyczki Gradle, musisz najpierw uwierzytelnić się w swoim projekcie Firebase na jeden z poniższych sposobów. Domyślnie wtyczka Gradle szuka poświadczeń z Firebase CLI, jeśli nie jest używana żadna inna metoda uwierzytelniania.
Uwierzytelnianie za pomocą konta usługi umożliwia elastyczne korzystanie z wtyczki z systemem ciągłej integracji (CI). Dane logowania do konta usługi można podać na dwa sposoby:
- Przekaż plik klucza konta usługi do
build.gradle
. Ta metoda może okazać się wygodna, jeśli masz już plik klucza konta usługi w środowisku kompilacji. - Ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
tak, aby wskazywała plik klucza konta usługi. Możesz preferować tę metodę, jeśli masz już skonfigurowane domyślne poświadczenia aplikacji (ADC) dla innej usługi Google (np. Google Cloud).
Aby uwierzytelnić się przy użyciu poświadczeń konta usługi:
- W Google Cloud Console wybierz swój projekt i utwórz nowe konto usługi.
- Dodaj rolę administratora dystrybucji aplikacji Firebase .
- Utwórz prywatny klucz json i przenieś klucz do lokalizacji dostępnej dla twojego środowiska kompilacji. Pamiętaj, aby przechowywać ten plik w bezpiecznym miejscu , ponieważ zapewnia on administratorowi dostęp do dystrybucji aplikacji w Twoim projekcie Firebase.
- Pomiń ten krok, jeśli Twoja aplikacja została utworzona po 20 września 2019 r.: W konsoli interfejsów API Google włącz interfejs Firebase App Distribution API. Po wyświetleniu monitu wybierz projekt o tej samej nazwie, co projekt Firebase.
Podaj lub zlokalizuj dane logowania do konta usługi:
- Aby przekazać Gradle klucz konta usługi, w pliku
build.gradle
ustaw właściwośćserviceCredentialsFile
na plik JSON klucza prywatnego. Aby zlokalizować swoje dane uwierzytelniające za pomocą ADC, ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
na ścieżkę pliku JSON klucza prywatnego. Na przykład:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą ADC, przeczytaj Dostarczanie poświadczeń do aplikacji.
- Aby przekazać Gradle klucz konta usługi, w pliku
Zobacz Logowanie za pomocą Firebase CLI, aby uzyskać instrukcje dotyczące uwierzytelniania projektu.
Krok 3. Skonfiguruj właściwości dystrybucji
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
lub
) skonfiguruj dystrybucję aplikacji, dodając co najmniej jedna sekcja firebaseAppDistribution
.
Na przykład, aby rozesłać release
wersji do testerów, postępuj zgodnie z tymi instrukcjami:
Groovy
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" } } } // ... }
Możesz skonfigurować Dystrybucję aplikacji dla typów kompilacji i smaków produktów .
Na przykład, aby dystrybuować kompilacje debug
i release
w „demo” i „pełnej” wersji produktu, postępuj zgodnie z tymi instrukcjami:
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" } } } // ... }
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" } } } // ... }
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 można znaleźć w pliku appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | Ścieżka do pliku JSON klucza prywatnego konta usługi. Wymagane tylko w przypadku korzystania z uwierzytelniania konta usługi. |
artifactType | Określa typ pliku Twojej aplikacji. Można ustawić na |
artifactPath | Ścieżka bezwzględna do pliku APK lub AAB, który chcesz przesłać. |
releaseNotes lub releaseNotesFile | Informacje o wersji dla tej kompilacji. Możesz bezpośrednio określić informacje o wersji lub ścieżkę do zwykłego pliku tekstowego. |
testers lub testersFile | Adresy e-mail testerów, do których 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 oddzieloną 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ślane za pomocą Możesz określić grupy jako listę oddzielonych przecinkami aliasów grup: groups="qa-team, android-testers" Lub możesz 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
Na koniec, aby spakować aplikację testową i zaprosić testerów, zbuduj cele
BUILD-VARIANT
iappDistributionUpload BUILD-VARIANT
z opakowaniem Gradle projektu, gdzie BUILD-VARIANT to opcjonalny smak produktu i typ kompilacji skonfigurowany w poprzednim kroku. Aby uzyskać więcej informacji o wersjach produktów, zobacz Konfigurowanie wariantów kompilacji .Na przykład, aby dystrybuować 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ś poświadczeń 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
Możesz także zastąpić wartości ustawione w pliku
build.gradle
, przekazując argumenty wiersza poleceń 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 wersji w Twoim projekcie, ale nadal mogą zachować dostęp do Twoich wersji przez pewien czas.
Możesz także określić testerów za pomocą
--file="/path/to/testers.txt"
zamiast--emails
.Zadania
appDistributionAddTesters
iappDistributionRemoveTesters
akceptują również następujące argumenty:projectNumber
: Twój numer projektu Firebase.serviceCredentialsFile
: ścieżka do pliku danych logowania do usługi Google. Jest to ten sam argument, którego używa akcja przesyłania.
Wtyczka Gradle wyświetla następujące linki po przesłaniu wersji. Te łącza pomagają zarządzać plikami binarnymi i zapewniają, że testerzy i inni programiści mają odpowiednią wersję:
-
firebase_console_uri
— łącze do konsoli Firebase wyświetlającej jedną wersję. Możesz udostępnić ten link innym programistom w swojej organizacji. -
testing_uri
— link do wersji w środowisku testera (aplikacja natywna dla systemu Android), który umożliwia testerom wyświetlanie informacji o wersji i instalowanie aplikacji na swoim urządzeniu. Tester musi mieć dostęp do wersji, aby użyć łącza. -
binary_download_uri
— podpisany link, który bezpośrednio pobiera i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po godzinie.
Po rozpowszechnieniu kompilacji staje się ona dostępna na pulpicie nawigacyjnym Dystrybucja aplikacji w konsoli Firebase przez 150 dni (pięć miesięcy). Gdy kompilacja wygaśnie za 30 dni, powiadomienie o wygaśnięciu pojawi się zarówno w konsoli, jak i na liście kompilacji testera na jego urządzeniu testowym.
Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymują e-maile z zaproszeniami do rozpoczęcia, a obecni testerzy otrzymują powiadomienia e-mail, że nowa kompilacja jest gotowa do przetestowania (przeczytaj przewodnik konfiguracji testera , aby dowiedzieć się, jak zainstalować aplikację testową). Możesz monitorować status każdego testera – czy zaakceptował zaproszenie i czy pobrał aplikację – w konsoli Firebase.
Testerzy mają 30 dni na zaakceptowanie zaproszenia do przetestowania aplikacji przed jego wygaśnięciem. Gdy zaproszenie wygaśnie za 5 dni, w konsoli Firebase obok testera pojawi się powiadomienie o wygaśnięciu. Zaproszenie można odnowić, wysyłając je ponownie, korzystając z menu rozwijanego w wierszu testera.
Następne kroki
Zaimplementuj informacje zwrotne w aplikacji , aby ułatwić testerom przesyłanie opinii o Twojej aplikacji (w tym zrzutów ekranu).
Dowiedz się, jak wyświetlać testerom alerty w aplikacji , gdy nowe wersje aplikacji są dostępne do zainstalowania.
Odwiedź laboratorium kodowania pakietu Android App Bundle, aby dowiedzieć się, jak krok po kroku rozpowszechniać wersje pakietu aplikacji.
Poznaj sprawdzone metody dystrybucji aplikacji na Androida wśród testerów kontroli jakości przy użyciu CI/CD .