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ć pakiety Android App Bundle wśród testerów przy użyciu wtyczki App Distribution do Gradle.
Rozpowszechnianie aplikacji integruje się z wewnętrzną usługą udostępniania aplikacji w Google Play, aby przetwarzać przesłane przez Ciebie pakiety aplikacji na Androida i udostępniać pliki APK zoptymalizowane pod kątem konfiguracji urządzeń testerów. Dystrybucja pakietów aplikacji na Androida umożliwia:
Uruchamiaj zoptymalizowane pliki APK (udostępniane przez Google Play), które są zoptymalizowane pod kątem urządzeń testerów.
Wykrywanie i debugowanie problemów związanych z urządzeniami.
Testuj funkcje pakietów aplikacji, takie jak Play Feature Delivery i Play Asset Delivery.
Zmniejsz rozmiar pobieranych plików przeznaczonych dla testerów.
Wymagane uprawnienia
Aby przesłać pakiety aplikacji na Androida do usługi Rozpowszechnianie aplikacji, musisz połączyć swoją aplikację Firebase z aplikacją w Google Play. Aby wykonać te działania, musisz mieć wymagany poziom dostępu.
Jeśli nie masz niezbędnego dostępu do Firebase, poproś 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, przeczytaj najczęstsze pytania dotyczące uprawnień i dostępu do projektów Firebase.
Tabela poniżej dotyczy łączenia aplikacji Firebase z aplikacją w Google Play oraz przesyłania pakietów aplikacji na Androida.
Działanie w konsoli Firebase | Wymagane uprawnienia | Role, które domyślnie zawierają wymagane uprawnienia | Dodatkowe wymagane role |
---|---|---|---|
Łączenie aplikacji Firebase z aplikacją w Google Play | firebase.playLinks.update
|
jedną z tych ról: | dostępu do konta dewelopera w Google Play jako administratora, |
Przesyłanie pakietów aplikacji na Androida do Rozpowszechniania aplikacji | firebaseappdistro.releases.update
|
jedną z tych ról: | –– |
Zanim zaczniesz
Dodaj Firebase do swojego projektu na Androida, chyba że masz to już za sobą. Po zakończeniu tego procesu w projekcie Firebase masz już aplikację Firebase na Androida.
Jeśli nie korzystasz z żadnych innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli zdecydujesz się na używanie 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:
Aplikacja w Google Play i aplikacja Firebase na Androida są zarejestrowane przy użyciu tej samej nazwy pakietu.
Aplikację w Google Play konfiguruje się w panelu aplikacji i jest ona rozpowszechniana na jednej ze ścieżek Google Play (test wewnętrzny, test zamknięty, test otwarty lub wersja produkcyjna).
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 Produkcyjna.
Połącz aplikację Firebase na Androida z kontem dewelopera w Google Play:
W konsoli Firebase otwórz
, a następnie wybierz 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 wyświetlanymi na ekranie, aby włączyć integrację usługi Rozpowszechniania aplikacji 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. 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 = "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" } } } // ... }
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 bundleRelease 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 bundleRelease 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="AAB"
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.