W tym dokumencie opisano, jak dystrybuować kompilacje APK do testerów za pomocą fastlane , platformy typu open source, która automatyzuje tworzenie i wydawanie aplikacji na iOS i Androida. Ten dokument jest zgodny z instrukcjami zdefiniowanymi w pliku Fastfile
. Po skonfigurowaniu Fastlane i Fastfile
możesz zintegrować Dystrybucję aplikacji z konfiguracją Fastlane.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .
Jeśli nie używasz żadnych innych produktów Firebase, wystarczy utworzyć projekt i zarejestrować swoją aplikację. Jeśli jednak zdecydujesz się w przyszłości korzystać z dodatkowych produktów, pamiętaj o wykonaniu wszystkich kroków na stronie, do której prowadzi link powyżej.
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. Przechowuj 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 podczas uwierzytelniania środowiska CI za pomocą Firebase CLI (więcej informacji można znaleźć w artykule Korzystanie z interfejsu CLI w systemach 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óre 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(...) # 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!" ) 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 ze swojego projektu lub grupy, 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 wersji w Twoim projekcie, ale mogą zachować dostęp do Twoich wersji przez pewien czas.
Jeśli masz dużą liczbę testerów, powinieneś rozważyć użycie grup.
Użyj Fastfile
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Uruchom akcje fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
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. -
group_alias
(opcjonalne): Jeśli określono, testerzy są dodawani (lub usuwani z) określonej grupy. -
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 podczas uwierzytelniania środowiska CI za pomocą Firebase CLI (więcej informacji można znaleźć w artykule Korzystanie z interfejsu CLI w systemach 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
Zaimplementuj informacje zwrotne w aplikacji , aby ułatwić testerom przesyłanie opinii o Twojej aplikacji (w tym zrzutów ekranu).
Dowiedz się, jak wyświetlać testerom alerty w aplikacji , gdy nowe wersje aplikacji są dostępne do zainstalowania.
Poznaj sprawdzone metody dystrybucji aplikacji na Androida wśród testerów kontroli jakości przy użyciu CI/CD .