Możesz zintegrować Rozpowszechnianie aplikacji z procesem kompilacji na Androida, korzystając z wtyczki do Gradle dystrybucji aplikacji. Wtyczka umożliwia wskazanie testerów i informacji o wersji w pliku Gradle aplikacji, co pozwala skonfigurować dystrybucję różnych typów kompilacji i wariantów aplikacji.
Z tego przewodnika dowiesz się, jak rozpowszechniać pliki APK testerom za pomocą wtyczki do Gradle dystrybucji aplikacji.
Zanim zaczniesz
Dodaj Firebase do swojego projektu na Androida, chyba że masz to już za sobą.
Jeśli nie korzystasz z ż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, musisz wykonać wszystkie czynności na stronie, do której link znajdziesz powyżej.
Krok 1. Skonfiguruj projekt na Androida
W pliku Gradle na poziomie głównym (na poziomie projektu) (
<project>/build.gradle.kts
lub<project>/build.gradle
) dodaj wtyczkę do Gradle do dystrybucji aplikacji 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 }
Do pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
) dodaj wtyczkę do Gradle dystrybucji aplikacji: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 tę właściwość systemową Java, która umożliwia Rozpowszechnianiu aplikacji do przesyłania dystrybucji do Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Krok 2. Uwierzytelnij za pomocą Firebase
Zanim użyjesz wtyczki do Gradle, musisz uwierzytelnić się w projekcie Firebase na jeden z poniższych sposobów. Domyślnie wtyczka do Gradle szuka danych logowania w interfejsie wiersza poleceń Firebase, jeśli nie jest używana żadna inna metoda 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 Rozpowszechnianie aplikacji, dodając co najmniej 1 sekcję firebaseAppDistribution
.
Aby na przykład udostępnić testerom kompilację release
, 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" } } } // ... }
Rozpowszechnianie aplikacji możesz skonfigurować pod kątem typów kompilacji i różnych rodzajów usług.
Aby na przykład rozpowszechniać kompilacje debug
i release
w wersji demonstracyjnej i pełnej, postępuj zgodnie z tymi 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 w App Distribution | |
---|---|
appId
|
Identyfikator aplikacji Firebase Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz zainstalowanej wtyczki do obsługi Gradle 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 korzystasz z uwierzytelniania za pomocą konta usługi. |
artifactType
|
Określa typ pliku aplikacji. Można ustawić |
artifactPath
|
Ścieżka bezwzględna do pliku APK lub pakietu AAB, 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 zwykłego pliku tekstowego. |
testers lub testersFile |
Adresy e-mail testerów, którym chcesz dystrybuować kompilacje. Testerów możesz podać w postaci listy oddzielonych przecinkami adresów e-mail: testers="ali@example.com, bri@example.com, cal@example.com" Możesz też podać ścieżkę do pliku zawierającego rozdzieloną przecinkami listę adresów e-mail: testersFile="/path/to/testers.txt" |
groups lub groupsFile |
Grupy testerów, którym chcesz rozpowszechniać kompilacje (zobacz Zarządzanie testerami).
Grupy określa się za pomocą Możesz podać te grupy w postaci listy oddzielonych przecinkami 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 |
Poniższe typy dystrybucji są częścią funkcji automatycznych testerów w wersji beta. Urządzenia testowe, na które chcesz rozpowszechniać kompilacje (patrz Testy automatyczne). Urządzenia testowe możesz podać w postaci listy rozdzielanej średnikami specyfikacji 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ącą rozdzieloną średnikami listę 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ż podać ścieżkę do zwykłego 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 w polu hasła na potrzeby automatycznego logowania się podczas testów automatycznych. |
testNonBlocking |
asynchronicznie uruchamiać testy automatyczne, Otwórz konsolę Firebase, aby wyświetlić wyniki automatycznych testów. |
stacktrace
|
Drukuje zrzut stosu dla wyjątków dotyczących użytkowników. Jest to przydatne podczas debugowania problemów. |
Krok 4. Udostępnianie aplikacji testerom
Na koniec, aby spakować aplikację testową i zaprosić testerów, utwórz cele
BUILD-VARIANT
iappDistributionUploadBUILD-VARIANT
za pomocą otoki Gradle projektu, gdzie BUILD-VARIANT to opcjonalny rodzaj usługi i typ kompilacji skonfigurowane w poprzednim kroku. Więcej informacji o odmianach produktów znajdziesz w artykule Konfigurowanie wersji kompilacji.Aby na przykład dystrybuować aplikację przy użyciu wariantu kompilacji
release
, uruchom to polecenie:./gradlew assembleRelease appDistributionUploadRelease
W przypadku uwierzytelnienia za pomocą konta Google bez podania danych logowania w pliku kompilacji Gradle uwzględnij 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 formacie--<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ąć 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 Firebase możesz dodać go do poszczególnych wersji. Usunięci testerzy utracą dostęp do wersji w projekcie, ale mogą zachować do nich dostęp przez pewien czas.
Możesz też zamiast
--emails
określić testerów--file="/path/to/testers.txt"
.Zadania
appDistributionAddTesters
iappDistributionRemoveTesters
akceptują też te argumenty:projectNumber
: numer projektu Firebase.serviceCredentialsFile
: ścieżka do pliku danych logowania do usług Google. Jest to ten sam argument używany w działaniu przesyłania.
Po przesłaniu wersji wtyczka do Gradle generuje poniższe linki. Te linki ułatwiają zarządzanie plikami binarnymi oraz sprawdzanie, czy testerzy i inni deweloperzy mają odpowiednią wersję:
firebase_console_uri
– link do konsoli Firebase wyświetlającego pojedynczą wersję. Możesz udostępnić ten link innym deweloperom w Twojej organizacji.testing_uri
– link do wersji w interfejsie testera (aplikacja natywna na Androida), który umożliwia testerom wyświetlenie informacji o wersji i zainstalowanie aplikacji na urządzeniach. Tester musi mieć dostęp do wersji, aby użyć linku.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 będzie ona dostępna w panelu Rozpowszechniania aplikacji w konsoli Firebase przez 150 dni (5 miesięcy). Gdy upłynie 30 dni od wygaśnięcia kompilacji, zarówno w konsoli, jak i na liście kompilacji testera na urządzeniu testowym pojawi się odpowiednie powiadomienie.
Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymują e-maile z zaproszeniem do rozpoczęcia testowania, a dotychczasowi testerzy otrzymują e-maile z powiadomieniami o tym, że nowa kompilacja jest gotowa do przetestowania (instrukcje instalowania aplikacji testowej znajdziesz w przewodniku po konfiguracji aplikacji dla testerów). Możesz monitorować stan każdego testera – czy zaakceptował zaproszenie i czy pobrał aplikację za pomocą konsoli Firebase.
Testerzy mają 30 dni na zaakceptowanie zaproszenia do testowania aplikacji, zanim wygaśnie. Jeśli zaproszenie wygasa po 5 dniach, w konsoli Firebase obok wersji pojawia się powiadomienie o wygaśnięciu. Zaproszenie można odnowić, wysyłając je ponownie, korzystając z menu w wierszu testera.
Dalsze kroki
Wdróż opinie w aplikacji, by ułatwić testerom przesyłanie opinii o aplikacji (w tym zrzutów ekranu).
Dowiedz się, jak wyświetlać testerom alerty w aplikacji o udostępnieniu do zainstalowania nowych kompilacji aplikacji.
Aby dowiedzieć się, jak krok po kroku dystrybuować wersje pakietów aplikacji, wykonaj ćwiczenie z programowania dotyczące pakietów aplikacji na Androida.
Poznaj sprawdzone metody rozpowszechniania aplikacji na Androida testerom kontroli jakości za pomocą CI/CD.