Możesz zintegrować App Distribution z procesem kompilacji Androida za pomocą wtyczki Gradle App Distribution. Wtyczka umożliwia określanie testerów i notatek o wersji w pliku Gradle aplikacji, co pozwala konfigurować dystrybucje dla różnych typów kompilacji i wariantów aplikacji.
Z tego przewodnika dowiesz się, jak rozpowszechniać pliki APK wśród testerów za pomocą App Distributionwtyczki Gradle.
Zanim zaczniesz
Dodaj Firebase do projektu aplikacji na Androida, jeśli nie korzystasz w nim jeszcze z tej usługi.
Jeśli nie używasz żadnych innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli jednak w przyszłości zdecydujesz się używać dodatkowych usług, wykonaj wszystkie czynności opisane na stronie, do której link znajdziesz powyżej.
uwzględnia wielkość liter i nie można jej zmienić w Firebase po zarejestrowaniu aplikacji w projekcie w Firebase.Otwórz App Distribution stronę konsoli Firebase. Gdy pojawi się odpowiedni komunikat, wybierz projekt w Firebase, a następnie wybierz aplikację za pomocą przełącznika aplikacji i kliknij Rozpocznij.
Krok 1. Konfigurowanie projektu aplikacji na Androida
W pliku Gradle na poziomie głównym (na poziomie projektu) (
<project>/build.gradle.ktslub<project>/build.gradle) dodaj wtyczkę Gradle App Distribution jako zależność: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.5.0" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.3.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.5.0' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.3.0' apply false }
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.ktslub<project>/<app-module>/build.gradle) dodaj wtyczkę Gradle App Distribution: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' }
Jeśli korzystasz z serwera proxy lub zapory sieciowej firmy, dodaj tę właściwość systemu Java, która umożliwia App Distribution przesyłanie dystrybucji do Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Krok 2. Uwierzytelnianie za pomocą Firebase
Zanim zaczniesz korzystać z wtyczki Gradle, musisz najpierw uwierzytelnić się w projekcie w Firebase na jeden z tych sposobów. Domyślnie wtyczka Gradle szuka danych logowania w interfejsie wiersza poleceń Firebase, jeśli nie jest używana żadna inna metoda uwierzytelniania.
Krok 3. Konfigurowanie właściwości dystrybucji
W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) skonfiguruj App Distribution, dodając co najmniej 1 sekcję firebaseAppDistribution.
Aby na przykład rozpowszechnić wersję release wśród testerów, postępuj zgodnie z tymi instrukcjami:
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" } } } // ... }
Możesz skonfigurować App Distribution dla typów kompilacji i wersji produktu.
Aby na przykład rozpowszechniać wersje debug i release w wariantach „demo” i „full”, wykonaj te czynności:
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" } } } // ... }
Aby skonfigurować dystrybucję, użyj tych parametrów:
| App Distribution Parametry kompilacji | |
|---|---|
appId
|
Identyfikator aplikacji Firebase. Wymagane tylko wtedy, gdy nie masz zainstalowanej wtyczki Gradle do usług Google. Identyfikator aplikacji znajdziesz w pliku appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
Ścieżka do pliku JSON klucza prywatnego konta usługi. Wymagane tylko wtedy, gdy używasz uwierzytelniania za pomocą konta usługi. |
artifactType
|
Określa typ pliku aplikacji. Można ustawić wartość |
artifactPath
|
Ścieżka bezwzględna do pliku APK lub pakietu aplikacji na Androida, który chcesz przesłać. |
releaseNotes lub releaseNotesFile |
Informacje o wersji tej kompilacji. Możesz podać informacje o wersji bezpośrednio lub ścieżkę do pliku w formacie zwykłego tekstu. |
testers lub testersFile |
Adresy e-mail testerów, którym chcesz udostępnić wersje. Możesz podać testerów jako listę adresów e-mail oddzielonych przecinkami: testers="ali@example.com, bri@example.com, cal@example.com" Możesz też podać ścieżkę do pliku zawierającego listę adresów e-mail rozdzielonych przecinkami: testersFile="/path/to/testers.txt" |
groups lub groupsFile |
Grupy testerów, którym chcesz udostępnić kompilacje (patrz Zarządzanie testerami).
Grupy są określane za pomocą Możesz podać grupy jako rozdzieloną przecinkami listę aliasów grup: groups="qa-team, android-testers" Możesz też podać ścieżkę do pliku zawierającego rozdzieloną przecinkami listę aliasów grup: groupsFile="/path/to/tester-groups.txt" |
testDevices lub testDevicesFile |
Urządzenia testowe, na których chcesz uruchomić testy agenta testowania aplikacji. Urządzenia testowe możesz określić jako listę specyfikacji urządzeń oddzielonych średnikami: testDevices="model=shiba,version=34,locale=en,orientation=portrait" Możesz też określić ścieżkę do pliku zawierającego rozdzieloną średnikami listę specyfikacji urządzeń: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Nazwa użytkownika do automatycznego logowania, która będzie używana podczas testów agenta testowania aplikacji. |
testPassword lub testPasswordFile |
Hasło do automatycznego logowania, które będzie używane podczas testów agenta testowania aplikacji. Możesz też podać ścieżkę do pliku tekstowego zawierającego hasło: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Nazwa zasobu pola nazwy użytkownika do automatycznego logowania, która będzie używana podczas testów agenta testowania aplikacji. |
testPasswordResource |
Nazwa zasobu pola hasła do automatycznego logowania, które ma być używane podczas testów agenta testowania aplikacji. |
testNonBlocking |
Jeśli to ustawienie jest włączone podczas przeprowadzania testów za pomocą agenta testowania aplikacji, polecenie rozpocznie testy, a następnie natychmiast zwróci wynik, zamiast czekać na ich zakończenie. Aby wyświetlić wyniki testu, otwórz konsolę Firebase. Jeśli ten flag nie jest ustawiony, polecenie będzie blokowane do czasu zakończenia testów i zakończy się kodem błędu, jeśli którykolwiek z testów się nie powiedzie. |
resultsBucket
|
Niestandardowy zasobnik Google Cloud Storage (GCS), w którym są przechowywane wyniki testów. Jeśli to pole pozostanie puste, użyty zostanie zasobnik domyślny. Zasobnik musi należeć do projektu, w którym włączono płatności, a określenie zasobnika powoduje naliczanie opłat za wykorzystane miejsce na dane. |
stacktrace
|
Wyświetla ślad stosu wyjątków użytkownika. Jest to przydatne podczas debugowania problemów. |
Krok 4. Udostępnianie aplikacji testerom
Na koniec, aby spakować aplikację testową i zaprosić testerów, skompiluj elementy docelowe
BUILD-VARIANTiappDistributionUploadBUILD-VARIANTza pomocą narzędzia Gradle Wrapper projektu, gdzie BUILD-VARIANT to opcjonalny wariant produktu i typ kompilacji skonfigurowany w poprzednim kroku. Więcej informacji o wersjach produktu znajdziesz w artykule o konfigurowaniu wariantów kompilacji.Aby na przykład rozpowszechniać aplikację za pomocą wariantu kompilacji
release, uruchom to polecenie:./gradlew assembleRelease appDistributionUploadRelease
Jeśli uwierzytelnianie odbyło się za pomocą konta Google, a w pliku build.gradle nie podano danych logowania, dodaj zmienną
FIREBASE_TOKEN:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
Możesz też zastąpić wartości ustawione w pliku
build.gradle, przekazując argumenty wiersza poleceń w formie--<property-name>=<property-value>. Przykład:Aby przesłać kompilację do debugowania do App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"Aby zaprosić dodatkowych testerów lub usunąć obecnych 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 w Firebase możesz dodać go do poszczególnych wersji. Usunięci testerzy nie będą już mieć dostępu do wersji w Twoim projekcie, ale przez pewien czas mogą nadal mieć dostęp do Twoich wersji.
Możesz też określić testerów za pomocą właściwości
--file="/path/to/testers.txt"zamiast--emails.Zadania
appDistributionAddTestersiappDistributionRemoveTestersakceptują też te argumenty:projectNumber: numer projektu w Firebase.serviceCredentialsFile: ścieżka do pliku danych logowania do usługi Google. To ten sam argument, który jest używany w działaniu przesyłania.
Po przesłaniu wersji wtyczka Gradle wyświetla te linki: Te linki pomogą Ci zarządzać plikami binarnymi i zapewnić testerom oraz innym deweloperom dostęp do odpowiedniej wersji:
firebase_console_uri– link do Firebase konsoli wyświetlającej pojedynczą wersję. Możesz udostępnić ten link innym programistom w swojej organizacji.testing_uri– link do wersji w aplikacji dla testerów (wbudowanej aplikacji na Androida), który umożliwia testerom wyświetlanie informacji o wersji i instalowanie aplikacji na urządzeniu. Aby użyć linku, tester musi mieć dostęp do wersji.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 kompilacja będzie dostępna w App DistributionpaneluFirebase konsoli przez 150 dni (5 miesięcy). Gdy do wygaśnięcia wersji pozostanie 30 dni, w konsoli i na liście wersji testera na urządzeniu testowym pojawi się powiadomienie o wygaśnięciu.
Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymają e-maile z zaproszeniem do rozpoczęcia testów, a obecni testerzy otrzymają e-maile z powiadomieniem o tym, że nowa wersja jest gotowa do testowania (instrukcje instalacji testowej wersji aplikacji znajdziesz w przewodniku dla testerów). Stan każdego testera – czy zaakceptował zaproszenie i czy pobrał aplikację – możesz monitorować w Firebase.
Testerzy mają 30 dni na przyjęcie zaproszenia do testowania aplikacji, zanim utraci ono ważność. Gdy zaproszenie będzie wygasać za 5 dni, w Firebasekonsoli obok testera w wersji pojawi się powiadomienie o wygaśnięciu. Zaproszenie można odnowić, wysyłając je ponownie za pomocą menu w wierszu testera.
Dalsze kroki
Wdróż opinię w aplikacji, aby zbierać od testerów opinie o aplikacji (w tym zrzuty ekranu).
Dowiedz się, jak wyświetlać testerom alerty w aplikacji, gdy dostępne są nowe kompilacje aplikacji.
Aby dowiedzieć się, jak krok po kroku rozpowszechniać wersje pakietu aplikacji, zapoznaj się z ćwiczeniem dotyczącym pakietu Android App Bundle.
Poznaj sprawdzone metody dystrybucji aplikacji na Androida do testerów kontroli jakości za pomocą CI/CD.