Możesz rozpowszechniać kompilacje wśród testerów za pomocą
fastlane,
platformy open source, która automatyzuje tworzenie i publikowanie aplikacji na iOS i Androida. Postępuje ona zgodnie z prostymi instrukcjami zdefiniowanymi w pliku Fastfile. Po skonfigurowaniu
fastlane i pliku Fastfile możesz zintegrować App Distribution z konfiguracją fastlane.
Krok 1. Konfigurowanie fastlane
Aby dodać App Distribution do konfiguracji fastlane, uruchom to polecenie w katalogu głównym projektu na iOS:
fastlane add_plugin firebase_app_distribution
Jeśli polecenie wyświetli opcję, wybierz
Option 3: RubyGems.org.
Krok 2. Uwierzytelnianie w Firebase
Zanim zaczniesz korzystać z wtyczki fastlane, musisz się uwierzytelnić w projekcie w Firebase na jeden z tych sposobów. Domyślnie wtyczka fastlane szuka danych logowania w interfejsie wiersza poleceń Firebase, jeśli nie jest używana żadna inna metoda uwierzytelniania.
Krok 3. Konfigurowanie pliku Fastfile i rozpowszechnianie aplikacji
- W ścieżce
./fastlane/Fastfiledodajfirebase_app_distributionblok. Aby skonfigurować dystrybucję, użyj tych parametrów:Parametry firebase_app_distribution appWymagany tylko wtedy, gdy aplikacja nie zawiera pliku konfiguracyjnego Firebase (
GoogleService-Info.plist): identyfikator aplikacji Firebase. Identyfikator aplikacji znajdziesz w konsoli Firebase na stronie Ustawienia ogólne.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathŚcieżka do pliku
GoogleService-Info.plistwzględem ścieżki do zarchiwizowanej wersji produktu. Domyślnie ustawiona naGoogleService-Info.plist.Jeśli parametr
appnie jest określony, plik służy do pobierania identyfikatora aplikacji Firebase.firebase_cli_tokenToken odświeżania, który jest wyświetlany podczas uwierzytelniania środowiska CI za pomocą Firebase interfejsu wiersza poleceń (więcej informacji znajdziesz w artykule Używanie interfejsu wiersza poleceń w systemach CI ).
service_credentials_fileŚcieżka do pliku JSON konta usługi Google. Informacje o uwierzytelnianiu za pomocą danych logowania konta usługi znajdziesz powyżej.
ipa_pathZastępuje
apk_path(przestarzały). Ścieżka bezwzględna do pliku IPA, który chcesz przesłać. Jeśli nie jest określona, fastlane określa lokalizację pliku na podstawie ścieżki, w której plik został wygenerowany.release_notes
release_notes_fileInformacje o wersji tej kompilacji.
Możesz bezpośrednio określić informacje o wersji:
release_notes: "Text of release notes"
Możesz też określić ścieżkę do pliku tekstowego:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_fileAdresy e-mail testerów, których chcesz zaprosić.
Testerów możesz określić jako listę adresów e-mail rozdzieloną przecinkami:
testers: "ali@example.com, bri@example.com, cal@example.com"
Możesz też określić ścieżkę do pliku zwykłego tekstu zawierającego listę adresów e-mail rozdzielonych przecinkami:
testers_file: "/path/to/testers.txt"
groups
groups_fileGrupy testerów, które chcesz zaprosić (więcej informacji znajdziesz w artykule Zarządzanie testerami). Grupy są określane za pomocą
aliasów grup , które można znaleźć w Firebase konsoli.Grupy możesz określić jako listę rozdzieloną przecinkami:
groups: "qa-team, trusted-testers"
Możesz też określić ścieżkę do pliku tekstowego zawierającego listę nazw grup rozdzielonych przecinkami:
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ń rozdzielonych średnikami:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait"
Możesz też określić ścieżkę do pliku tekstowego zawierającego listę urządzeń testowych rozdzielonych średnikami:
test_devices_file: "/path/to/test-devices.txt"
test_usernametest_password
test_password_fileHasło do automatycznego logowania, które będzie używane podczas testów agenta testowania aplikacji .
Możesz też określić ś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óra będzie używana podczas testów agenta testowania aplikacji .
test_non_blockingJeśli ta opcja jest ustawiona podczas uruchamiania testów agenta testowania aplikacji , polecenie rozpocznie testy, a następnie natychmiast powróci zamiast czekać na ich zakończenie. Aby zobaczyć wyniki testów, otwórz konsolę Firebase. Jeśli ta flaga nie jest ustawiona, polecenie będzie blokować się do momentu 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ć ją na
trueaby wyświetlać 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ą przez działanie jest hasz reprezentujący przesłaną wersję.
Ten hash jest też dostępny za pomocą lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE].
Więcej informacji o dostępnych polach w tym hashu znajdziesz w
dokumentacji API REST.
Po przesłaniu wersji wtyczka fastlane wyświetla te linki: Linki te pomagają zarządzać plikami binarnymi i zapewniają, że testerzy oraz inni programiści mają odpowiednią wersję:
- Link do konsoli Firebase, w której wyświetla się pojedyncza wersja. Możesz udostępnić ten link innym programistom w organizacji.
- Link do wersji w środowisku testera (klip internetowy na iOS), który umożliwia testerom wyświetlanie informacji o wersji i instalowanie aplikacji na urządzeniu. Aby móc korzystać z 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 jest ona dostępna na App Distribution panelu Firebase konsoli przez 150 dni. Gdy do wygaśnięcia kompilacji pozostanie 30 dni, w konsoli i na liście kompilacji 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 zaproszeniami. Dotychczasowi testerzy otrzymają e-maile z powiadomieniami o tym, że nowa kompilacja jest gotowa do testowania. Aby dowiedzieć się, jak zainstalować aplikację testową , przeczytaj artykuł Konfigurowanie konta testera. W konsoli Firebase możesz monitorować stan każdego testera, aby sprawdzić, czy zaakceptował zaproszenie i czy pobrał aplikację w
(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.
Ten 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 za pomocą pliku Fastfile albo bezpośrednio uruchamiając działania fastlane. Bezpośrednie uruchamianie działań zastępuje wartości ustawione w pliku Fastfile.
Gdy tester zostanie dodany do projektu w Firebase, możesz go dodać do poszczególnych wersji. Testerzy usunięci z projektu w Firebase nie mają już dostępu do wersji w projekcie, ale mogą zachować dostęp do wersji przez pewien czas.
Jeśli masz dużą liczbę testerów, rozważ użycie grup.
Używanie pliku 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"
Zamiast
--emails możesz też określić testerów za pomocą --file="/path/to/testers.txt.
Zadania firebase_app_distribution_add_testers i firebase_app_distribution_remove_testers akceptują też te argumenty:
project_name: numer projektu w Firebase.group_alias(opcjonalnie): jeśli jest określony, testerzy są dodawani do określonej grupy lub z niej usuwani.service_credentials_file: ścieżka do pliku danych logowania konta usługi Google.firebase_cli_token: token autoryzacji interfejsu wiersza poleceń Firebase.
service_credentials_file i firebase_cli_token to te same argumenty, których używa działanie przesyłania.
Krok 5 (opcjonalny). Uzyskiwanie informacji o najnowszej wersji aplikacji
Za pomocą działania firebase_app_distribution_get_latest_release możesz 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 poprzedniej wersji.
Wartością zwracaną przez działanie jest hasz reprezentujący najnowszą wersję.
Ten hash jest też dostępny za pomocą lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE].
Więcej informacji o dostępnych polach w tym hashu znajdziesz w
dokumentacji 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
Jeśli parametr |
firebase_cli_token
|
Token odświeżania, który jest wyświetlany podczas uwierzytelniania środowiska CI za pomocą Firebase interfejsu wiersza poleceń (więcej informacji znajdziesz w artykule Używanie interfejsu wiersza poleceń w systemach CI ). |
service_credentials_file
|
Ścieżka do pliku JSON konta usługi Google. Informacje o uwierzytelnianiu za pomocą danych logowania konta usługi znajdziesz w poprzedniej dokumentacji. |
service_credentials_json_data
|
Zawartość pliku JSON konta usługi Google. Informacje o uwierzytelnianiu za pomocą danych logowania konta usługi znajdziesz w poprzedniej dokumentacji. |
debug
|
Flaga logiczna. Możesz ustawić ją na |
Dalsze kroki
Aby zarejestrować więcej urządzeń ręcznie lub programowo, przeczytaj artykuł Rejestrowanie dodatkowych urządzeń z iOS.
Poznaj sprawdzone metody rozpowszechniania aplikacji Apple wśród testerów QA za pomocą CI/CD i fastlane.