Możesz zintegrować App Distribution z procesem kompilacji Androida za pomocą wtyczki 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 rozpowszechniać pakiety aplikacji na Androida (AAB) wśród testerów za pomocą wtyczki App DistributionGradle.
App Distribution integruje się z usługą wewnętrznego udostępniania aplikacji w Google Play, aby przetwarzać przesyłane przez Ciebie pakiety aplikacji i przekazywać pliki APK zoptymalizowane pod kątem konfiguracji urządzeń testerów. Rozpowszechnianie aplikacji z uwzględnieniem AAB umożliwia:
Uruchom zoptymalizowane pliki APK (dostarczane przez Google Play), które są zoptymalizowane pod kątem urządzeń testerów.
Wykrywanie i debugowanie problemów związanych z konkretnym urządzeniem.
Testowanie funkcji pakietów aplikacji, takich jak Play Feature Delivery i Play Asset Delivery.
Zmniejsz rozmiar plików do pobrania dla testerów.
Wymagane uprawnienia
Aby przesyłać pakiety aplikacji na Androida do App Distribution, musisz połączyć aplikację Firebase z aplikacją w Google Play. Aby wykonać te czynności, musisz mieć wymagany poziom dostępu.
Jeśli nie masz wymaganego dostępu do Firebase, możesz poprosić właściciela projektu Firebase o przypisanie Ci odpowiedniej roli w ustawieniach uprawnień konsoli Firebase. Jeśli masz pytania dotyczące dostępu do projektu Firebase, w tym znajdowania lub przypisywania właściciela, zapoznaj się z artykułem „Uprawnienia i dostęp do projektów Firebase”.
Poniższa tabela dotyczy łączenia aplikacji Firebase z aplikacją w Google Play oraz przesyłania pakietów aplikacji na Androida.
Działanie w konsoli Firebase | Wymagane uprawnienia IAM | Role uprawnień, które domyślnie zawierają wymagane uprawnienia | Dodatkowe wymagane role |
---|---|---|---|
Połącz aplikację Firebase z aplikacją w Google Play | firebase.playLinks.update
|
jedną z tych ról: | dostęp do konta dewelopera Google Play w roli administratora, |
Przesyłanie pakietów AAB do App Distribution | firebaseappdistro.releases.update
|
jedną z tych ról: | –– |
Zanim zaczniesz
Jeśli nie zostało to jeszcze zrobione, dodaj Firebase do projektu na Androida. Po zakończeniu tego procesu w Twoim projekcie Firebase będzie dostępna aplikacja Firebase na Androida.
Jeśli nie używasz innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli zdecydujesz się używać dodatkowych usług, wykonaj wszystkie czynności opisane w artykule Dodawanie Firebase do projektu na Androida.
Aby utworzyć połączenie Firebase z Google Play i przesyłać pakiety aplikacji na Androida, sprawdź, czy Twoja aplikacja spełnia te wymagania:
Zarówno aplikacja w Google Play, jak i aplikacja Firebase na Androida zostały zarejestrowane przy użyciu tej samej nazwy pakietu.
Aplikacja w Google Play jest skonfigurowana w panelu aplikacji i rozpowszechniana na jednej ze ścieżek Google Play (test wewnętrzny, test zamknięty, test otwarty i produkcja).
Zakończono sprawdzanie aplikacji w Google Play i aplikacja została opublikowana. Aplikacja jest opublikowana, jeśli w kolumnie Stan aplikacji widoczny jest jeden z tych stanów: test wewnętrzny (nie wersja robocza testu wewnętrznego), test zamknięty, test otwarty lub produkcja.
Aby połączyć aplikację Firebase na Androida z kontem dewelopera w Google Play:
W konsoli Firebase otwórz
, a następnie kliknij kartę Integracje. Ustawienia projektu Na karcie Google Play kliknij Połącz.
Jeśli masz już połączenia z Google Play, kliknij Zarządzaj.Postępuj zgodnie z instrukcjami na ekranie, aby włączyć integrację App Distribution i wybrać aplikacje Firebase na Androida, które chcesz połączyć z Google Play.
Dowiedz się więcej o łączeniu z Google Play.
Krok 1. Konfigurowanie projektu na Androida
W pliku Gradle na poziomie katalogu głównego (na poziomie projektu) (
<project>/build.gradle.kts
lub<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.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 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. 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 w CLI Firebase, jeśli nie jest używana 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, wykonaj te czynności:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" 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 wersjach „demo” i „pełnej” produktu, 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 Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz zainstalowanej wtyczki Gradle dla 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 w przypadku uwierzytelniania za pomocą konta usługi. |
artifactType
|
Określa typ pliku aplikacji. Może mieć wartość |
artifactPath
|
Ścieżka bezwzględna do pliku APK lub AAB, który chcesz przesłać. |
releaseNotes lub releaseNotesFile |
Informacje o tej kompilacji. Możesz podać bezpośrednio notatki do wersji lub ścieżkę do pliku tekstowego. |
testers lub testersFile |
Adresy e-mail testerów, do których chcesz rozprowadzać wersje. 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 listę adresów e-mail rozdzielonych przecinkami: 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 listę aliasów grup oddzielonych przecinkami: groupsFile="/path/to/tester-groups.txt" |
testDevices lub testDevicesFile |
Te typy dystrybucji są częścią funkcji testowania automatycznego w wersji beta. Urządzenia testowe, na które chcesz rozpowszechnić kompilacje (patrz Testy automatyczne). Urządzenia testowe możesz określić jako listę specyfikacji urządzeń rozdzieloną średnikami: 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 listę specyfikacji urządzeń oddzielonych średnikami: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Nazwa użytkownika do automatycznego logowania, która ma być używana podczas testów zautomatyzowanych. |
testPassword lub testPasswordFile |
Hasło do automatycznego logowania, które będzie używane podczas testów zautomatyzowanych. Możesz też określić ścieżkę do pliku tekstowego zawierającego hasło: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Nazwa zasobu dla pola nazwy użytkownika do automatycznego logowania, które ma być używane podczas testów zautomatyzowanych. |
testPasswordResource |
Nazwa zasobu dla pola hasła do automatycznego logowania, które ma być używane podczas testów zautomatyzowanych. |
testNonBlocking |
asynchronicznie wykonywać testy automatyczne; Wyniki automatycznego testu znajdziesz w konsoli Firebase. |
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ą aplikację 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 rozpowszechniać aplikację za pomocą wariantu kompilacji
release
, uruchom to polecenie:./gradlew bundleRelease appDistributionUploadRelease
Jeśli uwierzytelnienie zostało przeprowadzone za pomocą konta Google i nie podano danych logowania w pliku build.gradle, dodaj zmienną
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Wartości ustawione w pliku
build.gradle
możesz też zastąpić, przekazując argumenty wiersza poleceń w formie--<property-name>=<property-value>
. Przykład:Aby przesłać kompilację do debugowania do usługi App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
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.
Możesz też określić testerów za pomocą operatora
--file="/path/to/testers.txt"
zamiast--emails
.Zadania
appDistributionAddTesters
iappDistributionRemoveTesters
akceptują też te 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 linki pomogą Ci zarządzać plikami binarnymi i zadbać o to, aby testerzy i inni deweloperzy mieli odpowiednią wersję:
firebase_console_uri
– link do konsoli Firebase, na której wyświetla się pojedyncza wersja. Możesz udostępnić ten link innym programistom w Twojej organizacji.testing_uri
– link do wersji w interfejsie testowania (natywnej aplikacji na Androida), który umożliwia testerom wyświetlanie notatek dotyczących 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 umożliwia bezpośrednie pobranie i zainstalowanie binarnego pliku aplikacji (plik APK lub AAB). Link wygasa po 1 godzinie.
Po rozpowszechnieniu wersji rozszerzonej 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, otrzymują e-maile z zaproszeniem do rozpoczęcia testów, a obecni testerzy otrzymują e-maile z powiadomieniem, że nowa wersja jest gotowa do testowania (instrukcje instalacji testowej wersji aplikacji znajdziesz w przewodniku po konfiguracji testów). 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 odnowić, wysyłając je ponownie za pomocą menu w wierszu testującego.
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 testerom, gdy nowe kompilacje aplikacji są dostępne do zainstalowania.
Aby dowiedzieć się, jak krok po kroku rozpowszechniać wersje pakietów aplikacji, skorzystaj z kursu Codelab na temat pakietów aplikacji na Androida.
Poznaj sprawdzone metody rozpowszechniania aplikacji na Androida wśród testerów kontroli jakości za pomocą CI/CD.