W tym przewodniku opisano, jak dystrybuować kompilacje AAB do testerów za pomocą fastlane , platformy typu open source, która automatyzuje tworzenie i wydawanie aplikacji na iOS i Androida. Postępuje zgodnie z prostymi instrukcjami zdefiniowanymi w pliku Fastfile
. Po skonfigurowaniu Fastlane i Fastfile
możesz zintegrować Dystrybucję aplikacji z konfiguracją Fastlane.
Dystrybucja aplikacji integruje się z wewnętrzną usługą udostępniania aplikacji Google Play, aby przetwarzać przesłane przez Ciebie AAB i udostępniać pliki APK zoptymalizowane pod kątem konfiguracji urządzeń Twoich testerów. Dystrybucja AAB umożliwia wykonanie następujących czynności:
Uruchom zoptymalizowane pliki APK (obsługiwane przez Google Play), które są zoptymalizowane pod kątem urządzeń Twoich testerów.
Wykrywaj i debuguj problemy specyficzne dla urządzenia.
Przetestuj funkcje pakietu aplikacji, takie jak Play Feature Delivery i Play Asset Delivery .
Zmniejsz rozmiar plików do pobrania dla testerów.
Wymagane uprawnienia
Aby przesłać AAB do App Distribution, musisz połączyć swoją 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 IAM konsoli Firebase . Jeśli masz pytania dotyczące uzyskiwania dostępu do projektu Firebase, w tym znajdowania lub przypisywania właściciela, przejrzyj najczęściej zadawane pytania „Uprawnienia i dostęp do projektów Firebase” .
Poniższa tabela dotyczy łączenia aplikacji Firebase z aplikacją w Google Play, a także przesyłania AAB.
Akcja w konsoli Firebase | Wymagane uprawnienie IAM | Role IAM, które domyślnie obejmują wymagane uprawnienia | Dodatkowe wymagane role |
---|---|---|---|
Połącz aplikację Firebase z aplikacją w Google Play | firebase.playLinks.update | Jedna z następujących ról: | Dostęp do konta programisty Google Play jako administrator |
Prześlij AAB do dystrybucji aplikacji | firebaseappdistro.releases.update | Jedna z następujących ról: | –– |
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 żadnych innych produktów Firebase, wystarczy utworzyć projekt i zarejestrować swoją aplikację. Jeśli zdecydujesz się skorzystać z dodatkowych produktów, wykonaj wszystkie czynności opisane w sekcji Dodaj Firebase do swojego projektu na Androida .
Aby utworzyć połączenie Firebase z Google Play i przesłać 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 na pulpicie nawigacyjnym aplikacji i jest dystrybuowana do jednej ze ścieżek Google Play (testy wewnętrzne, testy zamknięte, testy otwarte lub produkcja).
Recenzja aplikacji w Google Play została zakończona i aplikacja została opublikowana. Twoja aplikacja jest opublikowana, jeśli w kolumnie Stan aplikacji wyświetlany jest jeden z następujących stanów: Testy wewnętrzne (nie Wersja robocza testów wewnętrznych), Testy zamknięte, Testy otwarte lub Produkcja.
Połącz swoją aplikację Firebase na Androida z kontem programisty Google Play:
W konsoli Firebase przejdź do swoich
projektu , a następnie wybierz kartę Integracje .Na karcie Google Play kliknij Link .
Jeśli masz już linki do Google Play, zamiast tego kliknij Zarządzaj .Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć integrację dystrybucji aplikacji i wybrać, które aplikacje Firebase na Androida mają być łączone z Google Play.
Dowiedz się więcej o łączeniu z Google Play .
Krok 1. Skonfiguruj fastlane
Aby dodać Dystrybucję aplikacji do konfiguracji Fastlane, uruchom następujące polecenie z katalogu głównego projektu Android:
fastlane add_plugin firebase_app_distribution
Jeśli polecenie wyświetli monit z opcją, wybierz
Option 3: RubyGems.org
.
Krok 2. Uwierzytelnij w Firebase
Zanim będziesz mógł użyć wtyczki fastlane, musisz najpierw uwierzytelnić się w swoim projekcie Firebase na jeden z poniższych sposobów. Domyślnie wtyczka fastlane szuka poświadczeń z Firebase CLI, jeśli nie jest używana żadna inna metoda uwierzytelniania.
Uwierzytelnianie za pomocą konta usługi umożliwia elastyczne korzystanie z wtyczki z systemem ciągłej integracji (CI). Dane logowania do konta usługi można podać na dwa sposoby:
- Przekaż plik klucza konta usługi do akcji
firebase_app_distribution
. Ta metoda może okazać się 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ż skonfigurowane domyślne poświadczenia aplikacji (ADC) dla innej usługi Google (np. Google Cloud).
- 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ś klucz do lokalizacji dostępnej dla twojego środowiska kompilacji. Pamiętaj, aby przechowywać ten plik w bezpiecznym miejscu , ponieważ zapewnia on administratorowi dostęp do dystrybucji aplikacji w Twoim projekcie Firebase.
- Pomiń ten krok, jeśli Twoja aplikacja została utworzona po 20 września 2019 r.: W konsoli interfejsów API Google włącz interfejs Firebase App Distribution API. Po wyświetleniu monitu wybierz projekt o tej samej nazwie, co projekt Firebase.
Podaj lub zlokalizuj dane logowania do konta usługi:
- Aby przekazać klucz konta usługi do akcji
firebase_app_distribution
Twojego toru, ustaw parametrservice_credentials_file
na ścieżkę do pliku JSON klucza prywatnego Aby zlokalizować swoje dane uwierzytelniające za pomocą ADC, ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
na ścieżkę pliku JSON klucza prywatnego. 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ć klucz konta usługi do akcji
Zobacz Logowanie za pomocą Firebase CLI, aby uzyskać instrukcje dotyczące uwierzytelniania projektu.
Krok 3. Skonfiguruj Fastfile i rozpowszechnij swoją aplikację
- Na linii
./fastlane/Fastfile
dodaj blokfirebase_app_distribution
. Użyj następujących parametrów, aby skonfigurować dystrybucję:parametry firebase_app_distribution app
Wymagane : Identyfikator aplikacji Firebase Twojej aplikacji. Identyfikator aplikacji można znaleźć w konsoli Firebase na stronie Ustawienia ogólne .
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Token odświeżania, który jest drukowany, gdy uruchamiasz akcję logowania wtyczki (patrz Uwierzytelnianie przy użyciu konta Google powyżej) lub gdy uwierzytelniasz swoje środowisko CI za pomocą Firebase CLI (więcej informacji znajdziesz w artykule Używanie CLI z systemami CI ).
service_credentials_file
Ścieżka do pliku json konta usługi Google. Zobacz powyżej, jak uwierzytelnić się przy użyciu poświadczeń konta usługi .
android_artifact_type
Określa typ pliku systemu Android (APK lub AAB).
android_artifact_path
Zastępuje
apk_path
(przestarzałe). Ścieżka bezwzględna do pliku APK lub AAB, który chcesz przesłać. Jeśli nie jest określony, fastlane określa lokalizację pliku na podstawie toru, w którym plik został wygenerowany.release_notes
release_notes_file
Informacje o wersji dla tej kompilacji.
Możesz bezpośrednio określić informacje o wersji:
release_notes: "Text of release notes"
Lub podaj ścieżkę do zwykłego pliku tekstowego:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Adresy e-mail testerów, których chcesz zaprosić.
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ż określić ścieżkę do zwykłego pliku tekstowego zawierającego oddzieloną przecinkami listę adresów e-mail:
testers_file: "/path/to/testers.txt"
groups
groups_file
Grupy testerów, które chcesz zaprosić (patrz Zarządzanie testerami ). Grupy są określane za pomocą
pseudonimy grupowe , który możesz wyszukać w konsoli Firebase.Możesz określić grupy jako listę oddzieloną przecinkami:
groups: "qa-team, trusted-testers"
Lub możesz określić ścieżkę do zwykłego pliku tekstowego zawierającego oddzieloną przecinkami listę nazw grup:
groups_file: "/path/to/groups.txt"
debug
Flaga logiczna. Możesz ustawić to na
true
aby wydrukować szczegółowe dane wyjściowe debugowania.
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!", android_artifact_type: "AAB" ) end end
Aby udostępnić kompilację testerom, uruchom linię:
fastlane <lane>
Wartość zwracana przez akcję to hash reprezentujący przesłane wydanie. Ten skrót jest również dostępny przy użyciu lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
. Aby uzyskać więcej informacji na temat dostępnych pól w tym mieszaniu, zapoznaj się z dokumentacją interfejsu API REST .
Wtyczka fastlane wyświetla następujące linki po przesłaniu wersji. Te łącza pomagają zarządzać plikami binarnymi i zapewniają, że testerzy i inni programiści mają odpowiednią wersję:
- Łącze do konsoli Firebase wyświetlającej jedną wersję. Możesz udostępnić ten link innym programistom w swojej organizacji.
- Link do wersji w środowisku testera (natywna aplikacja na Androida), który umożliwia testerom przeglądanie informacji o wersji i instalowanie aplikacji na swoim urządzeniu. Tester musi mieć dostęp do wersji, aby użyć łącza.
- Podpisany link, który bezpośrednio pobiera i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po godzinie.
Po rozpowszechnieniu kompilacji jest ona dostępna w panelu dystrybucji aplikacji w konsoli Firebase przez 150 dni. Gdy kompilacja wygaśnie za 30 dni, w konsoli i na liście kompilacji testera na jego urządzeniu testowym pojawi się powiadomienie o wygaśnięciu.
Testerzy, którzy nie zostali wcześniej zaproszeni do testowania aplikacji, otrzymują zaproszenia e-mail, aby rozpocząć. Istniejący testerzy otrzymują powiadomienia e-mail, że nowa kompilacja jest gotowa do przetestowania. Aby dowiedzieć się, jak zainstalować aplikację testową, zobacz przewodnik konfiguracji testera . Możesz monitorować stan każdego testera, aby określić, czy zaakceptował zaproszenie i czy pobrał aplikację w konsoli Firebase.
(Opcjonalnie) Aby automatycznie zwiększać numer kompilacji za każdym razem, gdy tworzysz nową wersję w dystrybucji aplikacji, możesz użyć akcji firebase_app_distribution_get_latest_release
i na przykład wtyczki increment_version_code
fastlane . Poniższy kod zawiera przykład automatycznego zwiększania numeru kompilacji:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
Aby dowiedzieć się więcej o akcji firebase_app_distribution_get_latest_release
, zobacz Uzyskiwanie informacji o najnowszej wersji aplikacji .
Krok 4 (opcjonalnie). Zarządzanie testerami dystrybucji
Możesz dodawać i usuwać testerów z wersji aplikacji, korzystając z pliku Fastfile
lub bezpośrednio uruchamiając akcje Fastlane. Uruchamiane akcje bezpośrednio zastępują wartości ustawione w Fastfile
.
Po dodaniu testera do projektu Firebase możesz dodać go do poszczególnych wersji. Testerzy, którzy zostali usunięci z Twojego projektu Firebase, nie mają już dostępu do wydań w Twoim projekcie, ale mogą zachować dostęp do Twoich wydań przez określony czas.
Użyj Fastfile
# Use lanes to add or remove testers from an app release. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Uruchom akcje fastlane
fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"
Możesz także określić testerów za pomocą --file="/path/to/testers.txt
zamiast --emails
.
Zadania firebase_app_distribution_add_testers
i firebase_app_distribution_remove_testers
akceptują również następujące argumenty:
-
project_name
: Twój numer projektu Firebase. -
service_credentials_file
: Ścieżka do pliku danych logowania do usługi Google. -
firebase_cli_token
: Token autoryzacji dla Firebase CLI.
Plik service_credentials_file
i firebase_cli_token
to te same argumenty, które są używane w akcji przesyłania.
Krok 5 (opcjonalnie). Uzyskaj informacje o najnowszej wersji swojej aplikacji
Możesz użyć akcji firebase_app_distribution_get_latest_release
, aby pobrać informacje o najnowszej wersji swojej aplikacji w dystrybucji aplikacji, w tym informacje o wersji aplikacji, informacje o wersji i czas utworzenia. Przypadki użycia obejmują automatyczne zwiększanie wersji i przenoszenie informacji o wersji z poprzedniej wersji.
Wartością zwracaną przez akcję jest skrót reprezentujący najnowszą wersję. Ten skrót jest również dostępny przy użyciu lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
. Aby uzyskać więcej informacji na temat dostępnych pól w tym mieszaniu, zapoznaj się z dokumentacją interfejsu API REST .
Parametry
parametry firebase_app_distribution_get_latest_release | |
---|---|
app | Wymagane : Identyfikator aplikacji Firebase Twojej aplikacji. Identyfikator aplikacji można znaleźć w konsoli Firebase na stronie Ustawienia ogólne . app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | Token odświeżania, który jest drukowany, gdy uruchamiasz akcję logowania wtyczki (patrz Uwierzytelnianie przy użyciu konta Google powyżej) lub gdy uwierzytelniasz swoje środowisko CI za pomocą Firebase CLI (więcej informacji znajdziesz w artykule Używanie CLI z systemami CI ). |
service_credentials_file | Ścieżka do pliku json konta usługi Google. Zobacz powyżej, jak uwierzytelnić się przy użyciu poświadczeń konta usługi . |
debug | Flaga logiczna. Możesz ustawić to na |
Następne kroki
Poznaj sprawdzone metody dystrybucji aplikacji na Androida wśród testerów kontroli jakości przy użyciu CI/CD .