Dystrybucję aplikacji można zintegrować z procesem tworzenia systemu Android za pomocą wtyczki App Distribution Gradle. Wtyczka umożliwia określenie testerów i informacji o wersji w pliku build.gradle
aplikacji, umożliwiając konfigurowanie dystrybucji dla różnych typów kompilacji i wariantów aplikacji.
W tym przewodniku opisano, jak rozpowszechniać pakiety aplikacji na Androida (AAB) wśród testerów za pomocą wtyczki App Distribution Gradle.
Aby postępować zgodnie z tym przewodnikiem, musisz spełnić następujące wymagania wstępne: dostęp do projektu Firebase ( Właściciel lub Administrator Firebase ), dostęp do konta programisty Google Play ( Właściciel lub Administrator ) oraz aplikacja, która jest opublikowana w Google Play.
Informacje o dystrybucji pakietów aplikacji na Androida
Dystrybucja aplikacji integruje się z wewnętrzną usługą udostępniania aplikacji w Google Play, aby przetwarzać przesłane pliki AAB i udostępniać pakiety APK zoptymalizowane pod kątem konfiguracji urządzeń testerów. Dystrybuując AAB, możesz:
- Uruchamiaj zoptymalizowane pakiety APK (serwowane przez Google Play), które są zoptymalizowane pod kątem urządzeń Twoich testerów.
- Odkrywaj i debuguj problemy specyficzne dla urządzenia.
- Testuj funkcje pakietu aplikacji, takie jak dostawa funkcji Play i dostawa zasobów Play
- Zmniejsz rozmiar plików do pobrania dla testerów.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida . Pod koniec tego przepływu pracy będziesz mieć aplikację Firebase na Androida w swoim projekcie Firebase.
Jeśli nie używasz innych produktów Firebase, wystarczy, że utworzysz projekt i zarejestrujesz swoją aplikację. Jeśli zdecydujesz się na korzystanie z dodatkowych produktów, wykonaj wszystkie czynności opisane w sekcji Dodaj Firebase do swojego projektu na Androida .
Aby utworzyć link Firebase do Google Play i przesłać pliki AAB, upewnij się, że Twoja aplikacja spełnia następujące wymagania:
Aplikacja w Google Play i aplikacja Firebase na Androida są zarejestrowane przy użyciu tej samej nazwy pakietu.
Aplikacja w Google Play jest konfigurowana w panelu aplikacji i jest dystrybuowana do jednej ze ścieżek Google Play (testy wewnętrzne, testy zamknięte, testy otwarte lub produkcja).
Przegląd aplikacji w Google Play został zakończony i aplikacja została opublikowana. Twoja aplikacja zostanie opublikowana, jeśli w kolumnie Stan aplikacji widoczny jest jeden z następujących stanów: Testy wewnętrzne (nie Testy wewnętrzne w wersji roboczej), Testy zamknięte, Testy otwarte lub Produkcja.
Połącz aplikację Firebase na Androida z kontem programisty Google Play:
W konsoli Firebase przejdź do
projektu , a następnie wybierz kartę Integracje .Na karcie Google Play kliknij Połącz .
Jeśli masz już linki do Google Play, kliknij Zarządzaj .Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć integrację aplikacji App Distribution i wybrać, które aplikacje Firebase na Androida mają być połączone z Google Play.
Dowiedz się więcej o łączeniu z Google Play .
Krok 1. Skonfiguruj swój projekt na Androida
W pliku Gradle na poziomie projektu (zwykle
android/build.gradle
) dodaj wtyczkę App Distribution jako zależność buildscript:buildscript { repositories { // Check that you have Google's Maven repository (if not, add it). google() jcenter() } dependencies { // Add the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.2' } }
W pliku Gradle na poziomie aplikacji (zwykle
android/app/build.gradle
) umieść wtyczkę App Distribution poniżej wtyczki Android:apply plugin: 'com.android.application' // ... // Apply the App Distribution Gradle plugin apply plugin: 'com.google.firebase.appdistribution' // ...
Jeśli korzystasz z firmowego serwera proxy lub zapory sieciowej, dodaj następującą właściwość systemową Java, która umożliwia aplikacji App Distribution przesyłanie Twoich dystrybucji do Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Krok 2. Uwierzytelnij się w Firebase
Zanim zaczniesz korzystać z wtyczki Gradle, musisz najpierw uwierzytelnić się w swoim projekcie Firebase. Można to osiągnąć na trzy sposoby:
- Uruchom następujące polecenie:
./gradlew appDistributionLogin
Polecenie drukuje łącze uwierzytelniające. Otwórz link w przeglądarce.
Po wyświetleniu monitu zaloguj się na swoje konto Google i przyznaj uprawnienia dostępu do projektu Firebase. Polecenie Gradle drukuje token odświeżania, którego wtyczka App Distribution używa do uwierzytelniania w Firebase.
- Ustaw zmienną środowiskową
FIREBASE_TOKEN
na token z poprzedniego kroku:export FIREBASE_TOKEN=token
Uwierzytelnianie za pomocą konta usługi umożliwia elastyczne korzystanie z wtyczki z systemem ciągłej integracji (CI). Istnieją dwa sposoby podania poświadczeń konta usługi:
- Przekaż plik klucza konta usługi do
build.gradle
. Ta metoda może być wygodna, jeśli masz już plik klucza konta usługi w środowisku kompilacji. - Ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
tak, aby wskazywała plik klucza konta usługi. Możesz preferować tę metodę, jeśli masz już domyślne poświadczenia aplikacji (ADC) skonfigurowane dla innej usługi Google (np. Google Cloud).
Aby uwierzytelnić się przy użyciu poświadczeń konta usługi:
- W Google Cloud Console wybierz swój projekt i utwórz nowe konto usługi.
- Dodaj rolę administratora dystrybucji aplikacji Firebase .
- Utwórz prywatny klucz json i przenieś go do lokalizacji dostępnej dla Twojego środowiska kompilacji. Pamiętaj, aby przechowywać ten plik w bezpiecznym miejscu , ponieważ zapewnia on dostęp administratora do dystrybucji aplikacji w Twoim projekcie Firebase.
- Pomiń ten krok, jeśli aplikacja została utworzona po 20 września 2019 r.: w konsoli interfejsów Google API włącz interfejs Firebase App Distribution API. Po wyświetleniu monitu wybierz projekt o tej samej nazwie, co Twój projekt Firebase.
Podaj lub zlokalizuj dane logowania do konta usługi:
- Aby przekazać Gradle klucz konta usługi, w pliku
build.gradle
ustaw właściwośćserviceCredentialsFile
na plik JSON klucza prywatnego. Aby zlokalizować swoje dane uwierzytelniające za pomocą ADC, ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
na ścieżkę do pliku JSON z kluczem prywatnym. Na przykład:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą ADC, przeczytaj Dostarczanie poświadczeń do aplikacji.
- Aby przekazać Gradle klucz konta usługi, w pliku
Zobacz Logowanie za pomocą interfejsu Firebase CLI , aby uzyskać instrukcje dotyczące uwierzytelniania projektu.
Krok 3. Skonfiguruj właściwości dystrybucji
W pliku
app/build.gradle
skonfiguruj dystrybucję aplikacji, dodając co najmniej jedną sekcjęfirebaseAppDistribution
. Na przykład, aby dystrybuować kompilacjęrelease
do testerów:android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Dystrybucję aplikacji można skonfigurować pod kątem typów kompilacji i smaków produktów . Na przykład, aby rozpowszechniać kompilacje
debug
irelease
w wersjach „demo” i „pełna”: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" } } } // ... }
Użyj następujących parametrów, aby skonfigurować dystrybucję:
Parametry kompilacji dystrybucji aplikacji | |
---|---|
appId | Identyfikator aplikacji Firebase Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz zainstalowanej wtyczki Google Services Gradle. Identyfikator aplikacji znajdziesz w pliku appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | Ścieżka do pliku JSON z kluczem prywatnym konta usługi. Wymagane tylko w przypadku korzystania z uwierzytelniania konta usługi. |
artifactType | Określa typ pliku aplikacji. Można ustawić na |
artifactPath | Bezwzględna ścieżka do pliku APK lub AAB, który chcesz przesłać. |
releaseNotes lub releaseNotesFile | Informacje o wersji dla tej kompilacji. Uwagi do wydania można określić bezpośrednio lub ścieżkę do zwykłego pliku tekstowego. |
testers lub testersFile | Adresy e-mail testerów, którym chcesz dystrybuować kompilacje. Możesz określić 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 rozdzieloną przecinkami listę adresów e-mail: testersFile="/path/to/testers.txt" |
groups lub groupsFile | Grupy testerów, do których chcesz dystrybuować kompilacje (zobacz Zarządzanie testerami ). Grupy są określone za pomocą Możesz określić grupy jako listę oddzielonych przecinkami aliasów grup: groups="qa-team, android-testers" Możesz też określić ścieżkę do pliku zawierającego listę aliasów grup oddzielonych przecinkami: groupsFile="/path/to/tester-groups.txt" |
stacktrace | Drukuje ślad stosu dla wyjątków użytkownika. Jest to pomocne podczas debugowania problemów. |
Krok 4. Rozpowszechnij swoją aplikację wśród testerów
Na koniec, aby spakować aplikację testową i zaprosić testerów, skompiluj cele
BUILD-VARIANT
iappDistributionUpload BUILD-VARIANT
za pomocą Gradle wrapper twojego projektu, gdzie BUILD-VARIANT to opcjonalny smak produktu i typ kompilacji skonfigurowany w poprzednim kroku. Aby uzyskać więcej informacji o wariantach produktów, zobacz Konfigurowanie wariantów kompilacji .Na przykład, aby rozpowszechniać swoją aplikację przy użyciu wariantu kompilacji
release
, uruchom następujące polecenie:./gradlew bundleRelease appDistributionUploadRelease
Lub, jeśli uwierzytelniłeś się za pomocą swojego konta Google i nie podałeś danych logowania w pliku kompilacji Gradle, dołącz zmienną
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Możesz również zastąpić wartości ustawione w pliku
build.gradle
, przekazując argumenty wiersza polecenia w postaci--<property-name>=<property-value>
. Na przykład:Aby przesłać kompilację debugowania do dystrybucji aplikacji:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Aby zaprosić dodatkowych testerów lub usunąć istniejących 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 nie będą już mieli dostępu do wydań w Twoim projekcie, ale mogą zachować dostęp do wydań przez pewien czas.
Możesz również określić testerów za pomocą
--file="/path/to/testers.txt"
zamiast--emails
.Zadania
appDistributionAddTesters
iappDistributionRemoveTesters
również akceptują następujące argumenty:projectNumber
: numer Twojego projektu Firebase.serviceCredentialsFile
: ścieżka do pliku danych logowania usługi Google. Jest to ten sam argument, którego używa akcja przesyłania.
Po rozesłaniu kompilacji staje się ona dostępna w panelu dystrybucji aplikacji konsoli Firebase przez 150 dni (pięć miesięcy). Gdy kompilacja minie 30 dni od wygaśnięcia, powiadomienie o wygaśnięciu pojawi się zarówno w konsoli, jak i na liście kompilacji testera na urządzeniu testowym.
Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymują zaproszenia e-mail, aby rozpocząć, a dotychczasowi testerzy otrzymują powiadomienia e-mail, że nowa kompilacja jest gotowa do testowania (przeczytaj przewodnik konfiguracji testera, aby uzyskać instrukcje dotyczące instalowania aplikacji testowej). Możesz monitorować stan każdego testera – czy przyjął zaproszenie i czy pobrał aplikację – w konsoli Firebase.
Testerzy mają 30 dni na zaakceptowanie zaproszenia do przetestowania aplikacji przed jej wygaśnięciem. Po upływie 5 dni od wygaśnięcia zaproszenia w konsoli Firebase obok testera wersji pojawia się informacja o wygaśnięciu. Zaproszenie można odnowić, wysyłając je ponownie za pomocą menu rozwijanego w wierszu testera.
Następny krok
Odwiedź laboratorium kodowania Android App Bundle, aby dowiedzieć się, jak krok po kroku rozpowszechniać wersje pakietów aplikacji.