Kompilacje możesz rozpowszechniać wśród testerów za pomocą fastlane, czyli platformy open source, która automatyzuje tworzenie i publikowanie aplikacji na iOS i Androida. Ten przewodnik zawiera instrukcje zdefiniowane w Fastfile. Po skonfigurowaniu fastlane i Fastfile możesz zintegrować App Distribution z konfiguracją fastlane.
Zanim zaczniesz
Jeśli nie korzystasz jeszcze z Firebase, dodaj ją do projektu aplikacji na urządzenia Apple.
Jeśli nie używasz żadnych innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli jednak w przyszłości zdecydujesz się używać dodatkowych usług, wykonaj wszystkie czynności opisane na stronie, do której link znajdziesz powyżej.
Otwórz App Distribution stronę konsoli Firebase. Gdy pojawi się odpowiedni komunikat, wybierz projekt w Firebase, a następnie wybierz aplikację za pomocą przełącznika aplikacji i kliknij Rozpocznij.
Krok 1. Konfigurowanie fastlane
Aby dodać App Distribution do konfiguracji fastlane, uruchom to polecenie w katalogu głównym projektu iOS:
fastlane add_plugin firebase_app_distribution
Jeśli polecenie wyświetli opcję, kliknij
Option 3: RubyGems.org.
Krok 2. Uwierzytelnianie za pomocą Firebase
Zanim zaczniesz korzystać z wtyczki fastlane, musisz najpierw uwierzytelnić się w projekcie w Firebase w jeden z tych sposobów. Domyślnie wtyczka fastlane szuka danych logowania w interfejsie Firebase CLI, jeśli nie jest używana żadna inna metoda uwierzytelniania.
Krok 3. Konfigurowanie pliku Fastfile i rozpowszechnianie aplikacji
- W ścieżce
./fastlane/Fastfiledodaj blokfirebase_app_distribution. Aby skonfigurować dystrybucję, użyj tych parametrów:Parametry rozpowszechniania aplikacji przez Firebase appWymagany tylko wtedy, gdy aplikacja nie zawiera pliku konfiguracyjnego Firebase (
GoogleService-Info.plist): identyfikator aplikacji Firebase. Identyfikator aplikacji znajdziesz w Firebase konsoli na stronie Ustawienia ogólne.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathŚcieżka do pliku
GoogleService-Info.plist, podana w odniesieniu do ścieżki zarchiwizowanego produktu. Domyślnie ustawiona jest wartośćGoogleService-Info.plist.Plik służy do uzyskiwania identyfikatora aplikacji Firebase, jeśli parametr
appnie jest określony.firebase_cli_tokenToken odświeżania, który jest wyświetlany podczas uwierzytelniania środowiska CI za pomocą interfejsu wiersza poleceń Firebase (więcej informacji znajdziesz w artykule Korzystanie z interfejsu wiersza poleceń w systemach CI).
service_credentials_fileŚcieżka do pliku JSON konta usługi Google. Więcej informacji o uwierzytelnianiu za pomocą danych logowania konta usługi znajdziesz powyżej.
ipa_pathZastępuje parametr
apk_path(wycofany). Ścieżka bezwzględna do pliku IPA, który chcesz przesłać. Jeśli nie zostanie podana, fastlane określi lokalizację pliku na podstawie pasa, w którym został wygenerowany.release_notes
release_notes_fileInformacje o wersji tej kompilacji.
Możesz podać informacje o wersji bezpośrednio:
release_notes: "Text of release notes"
Możesz też podać ścieżkę do pliku w formacie zwykłego tekstu:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_fileAdresy e-mail testerów, których chcesz zaprosić.
Możesz podać 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 tekstowego zawierającego listę adresów e-mail rozdzielonych przecinkami:
testers_file: "/path/to/testers.txt"
groups
groups_fileGrupy testerów, które chcesz zaprosić (patrz Zarządzanie testerami). Grupy są określane za pomocą
aliasów grup , które możesz znaleźć w Firebase konsoli.Możesz podać grupy jako listę rozdzieloną przecinkami:
groups: "qa-team, trusted-testers"
Możesz też podać ścieżkę do pliku tekstowego zawierającego rozdzieloną przecinkami listę nazw grup:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Urządzenia testowe, na których chcesz uruchomić testy agenta testowania aplikacji.
Urządzenia testowe możesz określić jako listę specyfikacji urządzeń oddzielonych średnikami:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait"
Możesz też podać ścieżkę do pliku tekstowego zawierającego listę urządzeń testowych rozdzielonych średnikami:
test_devices_file: "/path/to/test-devices.txt"
test_usernameNazwa użytkownika do automatycznego logowania, która będzie używana podczas testów agenta testowania aplikacji.
test_password
test_password_fileHasło do automatycznego logowania, które będzie używane podczas testów agenta testowania aplikacji.
Możesz też podać ścieżkę do pliku tekstowego zawierającego hasło:
test_password_file: "/path/to/test-password.txt"
test_username_resourceNazwa zasobu pola nazwy użytkownika do automatycznego logowania, która będzie używana podczas testów agenta testowania aplikacji.
test_password_resourceNazwa zasobu pola hasła do automatycznego logowania, które ma być używane podczas testów agenta testowania aplikacji.
test_non_blockingJeśli to ustawienie jest włączone podczas przeprowadzania testów za pomocą agenta testowania aplikacji, polecenie rozpocznie testy, a następnie natychmiast zwróci wynik, zamiast czekać na ich zakończenie. Aby wyświetlić wyniki testu, otwórz konsolę Firebase. Jeśli ten flag nie jest ustawiony, polecenie będzie blokowane do czasu zakończenia testów i zakończy się kodem błędu, jeśli którykolwiek z testów się nie powiedzie.
debugFlaga logiczna. Możesz ustawić tę wartość na
true, aby drukować szczegółowe dane wyjściowe debugowania.
Przykład:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios: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 ścieżkę:
fastlane <lane>
Wartością zwracaną działania jest hash reprezentujący przesłaną wersję. Ten hash jest też dostępny w lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]. Więcej informacji o polach dostępnych w tym skrócie znajdziesz w dokumentacji interfejsu API REST.
Po przesłaniu wersji wtyczka fastlane wyświetla te linki: Te linki pomogą Ci zarządzać plikami binarnymi i zapewnić testerom oraz innym deweloperom dostęp do odpowiedniej wersji:
- Link do konsoli Firebase z wyświetlonymi informacjami o jednej wersji. Możesz udostępnić ten link innym programistom w swojej organizacji.
- Link do wersji w aplikacji testera (klip internetowy na iOS), który umożliwia testerom wyświetlanie informacji o wersji i instalowanie aplikacji na urządzeniu. Aby użyć linku, tester musi mieć dostęp do wersji.
- Podpisany link, który bezpośrednio pobiera i instaluje plik binarny aplikacji (plik IPA). Link wygasa po godzinie.
Po rozpowszechnieniu kompilacji będzie ona dostępna na App Distribution panelu Firebase konsoli przez 150 dni. Gdy do wygaśnięcia wersji pozostanie 30 dni, w konsoli i na liście wersji testera na urządzeniu testowym pojawi się powiadomienie o wygaśnięciu.
Testerzy, którzy nie zostali wcześniej zaproszeni do testowania aplikacji, otrzymają e-maile z zaproszeniem do rozpoczęcia testów. Dotychczasowi testerzy otrzymują e-maile z powiadomieniem, że nowa wersja jest gotowa do testowania. Aby dowiedzieć się, jak zainstalować aplikację testową, przeczytaj artykuł Przygotowywanie się do testowania. Stan każdego testera możesz śledzić w Firebase konsoli, aby sprawdzić, czy zaakceptował on zaproszenie i czy pobrał aplikację.
(Opcjonalnie) Aby automatycznie zwiększać numer kompilacji za każdym razem, gdy tworzysz nową wersję w Rozpowszechnianiu aplikacji, możesz użyć działania firebase_app_distribution_get_latest_release i działania increment_build_number.
Poniższy kod pokazuje, jak automatycznie zwiększać numer kompilacji:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Więcej informacji o tej funkcji wtyczki fastlane znajdziesz w artykule Uzyskiwanie informacji o najnowszej wersji aplikacji.
Krok 4 (opcjonalny). Zarządzanie testerami dystrybucji
Możesz dodawać i usuwać testerów z projektu lub grupy, korzystając z Fastfilepliku lub bezpośrednio uruchamiając działania fastlane. Wykonywanie działań bezpośrednio zastępuje wartości ustawione w Fastfile.
Po dodaniu testera do projektu w Firebase możesz dodać go do poszczególnych wersji. Testerzy usunięci z 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 wielu testerów, rozważ użycie grup.
Użyj konta 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_testersUruchamianie działań 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 też określić testerów za pomocą właściwości --file="/path/to/testers.txt zamiast --emails.
Zadania firebase_app_distribution_add_testers i firebase_app_distribution_remove_testers akceptują też te argumenty:
project_number: numer projektu w Firebase.group_alias(opcjonalnie): jeśli podasz tę wartość, testerzy zostaną dodani do określonej grupy (lub z niej usunięci).service_credentials_file: ścieżka do pliku danych logowania do usługi Google.firebase_cli_token: token uwierzytelniania interfejsu Firebase CLI.
Argumenty service_credentials_file i firebase_cli_token są takie same jak argumenty używane przez działanie przesyłania.
Krok 5 (opcjonalny). Informacje o najnowszej wersji aplikacji
Możesz użyć działania firebase_app_distribution_get_latest_release, aby pobrać informacje o najnowszej wersji aplikacji w Rozpowszechnianiu aplikacji, w tym informacje o wersji aplikacji, informacje o wersji i czas utworzenia. Przykłady zastosowań to automatyczne zwiększanie wersji i przenoszenie informacji o wersji z poprzedniego wydania.
Wartością zwracaną przez działanie jest hash reprezentujący najnowszą wersję. Ten hash jest też dostępny w lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]. Więcej informacji o polach dostępnych w tym skrócie znajdziesz w dokumentacji interfejsu API REST.
Parametry
| Parametry firebase_app_distribution_get_latest_release | |
|---|---|
app
|
Wymagany tylko wtedy, gdy aplikacja nie zawiera pliku konfiguracyjnego Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
Ścieżka do pliku
Plik służy do uzyskiwania identyfikatora aplikacji Firebase, jeśli parametr |
firebase_cli_token
|
Token odświeżania, który jest wyświetlany podczas uwierzytelniania środowiska CI za pomocą interfejsu wiersza poleceń Firebase (więcej informacji znajdziesz w artykule Korzystanie z interfejsu wiersza poleceń w systemach CI). |
service_credentials_file
|
Ścieżka do pliku JSON konta usługi Google. Wcześniejsza dokumentacja zawiera informacje o tym, jak uwierzytelniać się za pomocą danych logowania konta usługi. |
service_credentials_json_data
|
Zawartość pliku JSON konta usługi Google. Wcześniejsza dokumentacja zawiera informacje o tym, jak uwierzytelniać się za pomocą danych logowania konta usługi. |
debug
|
Flaga logiczna. Możesz ustawić tę wartość na |
Dalsze kroki
Aby zarejestrować więcej urządzeń ręcznie lub programowo, przeczytaj artykuł Rejestrowanie dodatkowych urządzeń z iOS.
Poznaj sprawdzone metody udostępniania aplikacji na urządzenia Apple testerom QA za pomocą CI/CD i fastlane.