Możesz rozpowszechniać kompilacje wśród testerów za pomocą fastlane, platformy open source, która automatyzuje tworzenie i udostępnianie aplikacji na iOS i Androida. Ten przewodnik jest zgodny z instrukcjami podanymi w dokumencie Fastfile. Po skonfigurowaniu narzędzia fastlane i Fastfile możesz zintegrować App Distribution z konfiguracją fastlane.
Zanim zaczniesz
Dodaj Firebase do projektu aplikacji na urządzenia Apple, jeśli nie korzystasz w nim jeszcze z tej usługi.
Jeśli nie używasz żadnych innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli jednak zdecydujesz się w przyszłości korzystać z dodatkowych usług, wykonaj wszystkie czynności opisane na stronie, do której link podano powyżej.
Otwórz stronę App Distribution w konsoli Firebase. Gdy pojawi się prośba, 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 z katalogu głównego projektu na iOS:
fastlane add_plugin firebase_app_distribution
Jeśli polecenie wyświetli opcję, wybierz
Option 3: RubyGems.org.
Krok 2. Uwierzytelnianie za pomocą Firebase
Zanim zaczniesz korzystać z wtyczki fastlane, musisz najpierw uwierzytelnić się w projekcie w Firebase na jeden z tych sposobów. Domyślnie wtyczka fastlane szuka danych logowania z interfejsu wiersza poleceń Firebase, jeśli nie jest używana żadna inna metoda uwierzytelniania.
Krok 3. Konfigurowanie pliku Fastfile i rozpowszechnianie aplikacji
- W linii
./fastlane/Fastfiledodaj blokfirebase_app_distribution. Aby skonfigurować dystrybucję, użyj tych parametrów:Parametry firebase_app_distribution appWymagany tylko wtedy, gdy aplikacja w Firebase nie zawiera pliku konfiguracji Firebase (
GoogleService-Info.plist): identyfikator aplikacji w 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 zarchiwizowanego produktu. Domyślnie ustawionoGoogleService-Info.plist.Plik ten służy do pobierania identyfikatora aplikacji w 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. Informacje o tym, jak uwierzytelniać się przy użyciu danych logowania konta usługi, znajdziesz powyżej.
ipa_pathZastępuje
apk_path(wycofane). Ścieżka bezwzględna do pliku IPA, który chcesz przesłać. Jeśli nie zostanie określona, fastlane określi lokalizację pliku na podstawie ścieżki, w której plik 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 zwykłego tekstu:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_fileAdresy e-mail testerów, których chcesz zaprosić.
Testerów możesz podać jako listę adresów e-mail rozdzielonych przecinkami:
testers: "ali@example.com, bri@example.com, cal@example.com"
Możesz też podać ścieżkę do zwykłego pliku tekstowego zawierającego listę adresów e-mail rozdzielonych przecinkami:
testers_file: "/path/to/testers.txt"
groups
groups_filegrupy testerów, których chcesz zaprosić (patrz Zarządzanie testerami); Grupy są określane za pomocą
aliasów grup , które możesz sprawdzić w konsoli Firebase.Możesz podać grupy jako listę rozdzieloną przecinkami:
groups: "qa-team, trusted-testers"
Możesz też podać ś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ż podać ścieżkę do pliku zwykłego tekstu 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 zwykłego tekstu 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 ustawisz tę opcję podczas uruchamiania testów agenta testowania aplikacji, polecenie rozpocznie testy, a następnie natychmiast zwróci wynik, zamiast czekać na ich zakończenie. Aby zobaczyć wyniki testu, otwórz konsolę Firebase. Jeśli ta flaga nie jest ustawiona, polecenie będzie blokowane 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ć wartość
true, aby 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ść zwracana przez działanie to hasz reprezentujący przesłaną wersję. Ten skrót 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 interfejsu API typu REST.
Po przesłaniu wersji wtyczka fastlane wyświetla te linki. Te linki pomagają zarządzać plikami binarnymi i zapewniają testerom oraz innym deweloperom dostęp do właściwej wersji:
- Link do konsoli Firebase wyświetlającej pojedynczą wersję. Możesz udostępnić ten link innym deweloperom w organizacji.
- link do wersji w interfejsie testera (wycinek internetowy na iOS), który umożliwia testerom wyświetlanie informacji o wersji i instalowanie aplikacji na urządzeniu; Aby skorzystać 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 kompilacja jest dostępna w panelu App Distribution w konsoli Firebase 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 zaproszeniem do rozpoczęcia testów. Dotychczasowi testerzy otrzymają e-maile z powiadomieniem, że nowa kompilacja jest gotowa do testowania. Aby dowiedzieć się, jak zainstalować aplikację testową, przeczytaj artykuł Konfigurowanie konta testera. W konsoli Firebase możesz sprawdzać stan każdego testera, aby dowiedzieć się, czy zaakceptował zaproszenie i czy pobrał aplikację.
(Opcjonalnie) Aby automatycznie zwiększać numer kompilacji przy każdym tworzeniu nowej wersji 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, używając pliku Fastfile lub bezpośrednio uruchamiając działania fastlane. Bezpośrednie uruchamianie działań zastępuje wartości ustawione w pliku Fastfile.
Po dodaniu testera do projektu w Firebase możesz go dodać do poszczególnych wersji. Testerzy, którzy zostali usunięci z projektu w Firebase, nie mają już dostępu do wersji w projekcie, ale przez pewien czas mogą zachować dostęp do Twoich wersji.
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ą --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 wiersza poleceń Firebase.
Argumenty service_credentials_file i firebase_cli_token są takie same jak te używane przez działanie przesyłania.
Krok 5 (opcjonalny). Uzyskiwanie informacji 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ń obejmują automatyczne zwiększanie wersji i przenoszenie informacji o wersji z poprzedniej wersji.
Wartość zwracana przez działanie to hasz reprezentujący najnowszą wersję. Ten skrót 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 interfejsu API typu REST.
Parametry
| Parametry firebase_app_distribution_get_latest_release | |
|---|---|
app
|
Wymagany tylko wtedy, gdy aplikacja w Firebase nie zawiera pliku konfiguracji Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
Ścieżka do pliku
Plik ten służy do pobierania identyfikatora aplikacji w 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śniejszą dokumentację dotyczącą uwierzytelniania przy użyciu danych logowania konta usługi znajdziesz tutaj. |
service_credentials_json_data
|
Zawartość pliku JSON konta usługi Google. Wcześniejszą dokumentację dotyczącą uwierzytelniania przy użyciu danych logowania konta usługi znajdziesz tutaj. |
debug
|
Flaga logiczna. Możesz ustawić wartość |
Dalsze kroki
Aby zarejestrować więcej urządzeń ręcznie lub automatycznie, zapoznaj się z artykułem Rejestrowanie dodatkowych urządzeń z iOS.
Poznaj sprawdzone metody rozpowszechniania aplikacji Apple wśród testerów kontroli jakości za pomocą CI/CD i fastlane.