Możesz zintegrować aplikację App Distribution z procesem kompilacji Androida za pomocą Wtyczka do obsługi Gradle App Distribution. W pluginie możesz określić testerów i notatki o wersji w pliku Gradle aplikacji, co pozwoli Ci skonfigurować dystrybucje dla różnych typów kompilacji i wariantów aplikacji.
Z tego przewodnika dowiesz się, jak rozprowadzać pliki APK testerom za pomocą Wtyczka do obsługi Gradle App Distribution.
Zanim zaczniesz
Dodaj Firebase do swojego urządzenia z Androidem, chyba że masz to już za sobą projekt.
Jeśli nie używasz innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli jednak w przyszłości zdecydujesz się na korzystanie z dodatkowych usług, wykonaj wszystkie czynności opisane na stronie, do której link znajduje się powyżej.
Krok 1. Konfigurowanie projektu na Androida
w pliku Gradle na poziomie głównym (na poziomie projektu); (
<project>/build.gradle.kts
lub<project>/build.gradle
), dodaj Wtyczka App Distribution do Gradle 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.4.2" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.0.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.2' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.0.0' apply false }
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.kts
lub<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 firmowego serwera proxy lub zapory sieciowej, dodaj: Właściwość systemowa Java który umożliwia usłudze App Distribution przesyłanie danych o wersjach do Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Krok 2. Uwierzytelnienie za pomocą Firebase
Aby móc korzystać z wtyczki Gradle, musisz najpierw uwierzytelnić się w projekcie Firebase w jeden z tych sposobów. Domyślnie wtyczka Gradle szuka danych logowania z interfejsu wiersza poleceń Firebase, jeśli nie ma żadnego innego uwierzytelniania .
Krok 3. Skonfiguruj 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 na stronie
co najmniej jedną sekcję firebaseAppDistribution
.
Aby na przykład rozpowszechnić wersję release
wśród testerów, wykonaj te czynności:
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ć kompilacje debug
i release
w grupie „demo” i „pełny”
postępuj zgodnie z instrukcjami:
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:
Parametry kompilacji App Distribution | |
---|---|
appId
|
Identyfikator aplikacji Firebase Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz
Wtyczka do obsługi Gradle usług Google została zainstalowana. Identyfikator aplikacji znajdziesz 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 za pomocą konta usługi. |
artifactType
|
Określa typ pliku aplikacji. Można ustawić na
|
artifactPath
|
Ścieżka bezwzględna do pliku APK lub pakietu AAB, który chcesz przesłać. |
releaseNotes lub releaseNotesFile |
Informacje o tej kompilacji. Możesz podać informacje o wersji bezpośrednio lub ścieżki do zwykłego pliku tekstowego. |
testers lub testersFile |
Adresy e-mail testerów, do których chcesz rozprowadzać kompilacje. Testerów możesz wskazać jako listę adresów e-mail rozdzielonych przecinkami: testers="ali@example.com, bri@example.com, cal@example.com" Możesz też podać ścieżkę do pliku zawierającego rozdzielone przecinkami lista adresów e-mail: testersFile="/path/to/testers.txt" |
groups lub groupsFile |
Grupy testerów, do których chcesz rozpowszechniać wersje (patrz Zarządzanie testerami).
Grupy są określane za pomocą Grupy możesz określić jako listę aliasów grup oddzielonych przecinkami: groups="qa-team, android-testers" Możesz też podać ścieżkę do pliku zawierającego rozdzielone przecinkami lista aliasów grup: groupsFile="/path/to/tester-groups.txt" |
testDevices lub testDevicesFile |
Poniższe typy dystrybucji są częścią funkcji automatycznych testerów w wersji beta. Urządzenia testowe, na które chcesz rozpowszechnić kompilacje (patrz Testy automatyczne). Urządzenia testowe możesz podać w postaci listy wartości rozdzielonych średnikami dane techniczne urządzenia: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" Możesz też podać ścieżkę do pliku zawierającego rozdzielone średnikami lista specyfikacji urządzenia: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Nazwa użytkownika do automatycznego logowania się podczas testów automatycznych. |
testPassword lub testPasswordFile |
Hasło do automatycznego logowania używane podczas testów automatycznych. Możesz też określić ścieżkę do pliku tekstowego zawierającego hasło: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Nazwa zasobu w polu nazwy użytkownika na potrzeby automatycznego logowania, które jest używane podczas testów automatycznych. |
testPasswordResource |
Nazwa zasobu dla pola hasła do automatycznego logowania, które ma być używane podczas testów zautomatyzowanych. |
testNonBlocking |
asynchronicznie uruchamiać testy automatyczne, Otwórz konsolę Firebase, aby wyświetlić wyniki automatycznych testów. |
stacktrace
|
Wypisuje ścieżkę śledzenia wyjątków dotyczących użytkownika. Jest to przydatne podczas rozwiązywania problemów. |
Krok 4. Udostępnianie aplikacji testerom
Aby spakować testową wersję aplikacji i zaprosić testerów, skompiluj cele
BUILD-VARIANT
iappDistributionUploadBUILD-VARIANT
za pomocą owijarki Gradle projektu, gdzie BUILD-VARIANT to opcjonalny wariant produktu i typ kompilacji skonfigurowane w poprzednim kroku. Więcej informacji o wersjach produktu znajdziesz w artykule Konfigurowanie wersji kompilacji.Aby na przykład dystrybuować aplikację przy użyciu wariantu kompilacji
release
, uruchom polecenie to polecenie:./gradlew assembleRelease appDistributionUploadRelease
Jeśli uwierzytelniasz się za pomocą konta Google i nie podajesz danych logowania w pliku build.gradle, 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 argumentów wiersza poleceń w postaci--<property-name>=<property-value>
Przykład:Aby przesłać kompilację do debugowania do usługi App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Aby zaprosić dodatkowych testerów lub usunąć dotychczasowych testerów z Twojego 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 go dodać do poszczególnych wersji. Usunięcie testerów spowoduje, że nie będą już mieć dostępu do wersji w Twoim projekcie, ale mogą zachować dostęp do wersji przez pewien czas.
Zamiast
--emails
możesz też użyć operatora--file="/path/to/testers.txt"
.Zadania
appDistributionAddTesters
iappDistributionRemoveTesters
możesz też zaakceptować następujące argumenty:projectNumber
: numer projektu Firebase.serviceCredentialsFile
: ścieżka do pliku z danymi logowania do usługi Google. Jest to ten sam argument, który jest używany przez działanie przesyłania.
Po przesłaniu wersji wtyczka Gradle generuje te linki. Te aby ułatwić sobie zarządzanie plikami binarnymi i sprawdzać, czy testerzy i inni deweloperzy mają odpowiednią wersję:
firebase_console_uri
– link do konsoli Firebase z wyświetlonym premiery singla. Możesz udostępnić ten link innym deweloperom na swoim org.testing_uri
– link do wersji w interfejsie testera (aplikacja natywna na Androida), która umożliwia testerom wyświetlenie wersji notatki i zainstalować aplikację na urządzeniu. Tester potrzebuje dostępu do tych elementów: wydania, aby móc użyć linku.binary_download_uri
– podpisany link, który umożliwia bezpośrednie pobieranie i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po upływie 1 godz.
Po rozpowszechnieniu wersji kompilacji będzie ona dostępna w panelu App Distribution konsoli Firebase przez 150 dni (5 miesięcy). Gdy do wygaśnięcia wersji pozostało 30 dni, w konsoli i na liście wersji na urządzeniu testowym testera pojawi się powiadomienie o wygaśnięciu.
Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymają e-maile z zaproszeniami a dotychczasowi testerzy otrzymają e-maile z powiadomieniami o nowej kompilacji. jest gotowy do testowania (przeczytaj przewodnik po konfiguracji dla testerów , aby dowiedzieć się, jak zainstalować test ). Stan każdego testującego (czy zaakceptował zaproszenie i czy pobrał aplikację) możesz sprawdzać w konsoli Firebase.
Testerzy mają 30 dni na zaakceptowanie zaproszenia do testowania aplikacji, zanim utraci ono ważność. Gdy do wygaśnięcia zaproszenia pozostaną 5 dni, w konsoli Firebase obok testera w ramach danej wersji pojawi się powiadomienie o wygaśnięciu. Zaproszenie można została odnowiona, wysyłając ją ponownie za pomocą menu w wierszu testera.
Dalsze kroki
Wprowadź opinie w aplikacji, aby ułatwić testerom przesyłanie opinii na temat aplikacji (w tym zrzutów ekranu).
Dowiedz się, jak wyświetlać alerty w aplikacji dla testerów, gdy nowe kompilacje Twojej aplikacji będą dostępne do zainstalowania.
Otwórz ćwiczenie z programowania związane z pakietem Android App Bundle. , by dowiedzieć się, jak krok po kroku rozpowszechniać wersje pakietów aplikacji.
Poznaj sprawdzone metody rozpowszechniania aplikacji na Androida wśród testerów kontroli jakości za pomocą CI/CD.