1. Zanim zaczniesz
Z tego ćwiczenia w Codelabs dowiesz się, jak używać usługi Firebase App Distribution i jej wtyczki fastlane do udostępniania aplikacji na iOS testerom, zbierania identyfikatorów UDID urządzeń testowych i rejestrowania ich w profilu udostępniania aplikacji, aby szybko tworzyć kompilacje Ad Hoc na potrzeby testerów ręce.
Czego się nauczysz
- Jak przesłać i rozpowszechnić przedpremierową aplikację na iOS (Ad Hoc) testerom za pomocą funkcji Rozpowszechniania aplikacji przez Firebase i szybkiej linii.
- Jak zarejestrować się jako tester i pobrać dystrybuowaną aplikację na urządzenie testowe.
- Jak szybko zarejestrować urządzenia testowe przez eksportowanie identyfikatorów UDID urządzeń testowych za pomocą wtyczki fastlane do App Distribution.
- Jak zaktualizować profil udostępniania aplikacji i ponownie przesłać ją do dystrybucji.
Czego potrzebujesz
- konto Google,
- komputer Apple z zainstalowanym XCode w wersji 11.7 lub nowszej,
- Nieopublikowana przedpremierowa aplikacja na iOS utworzona w Xcode
- płatne konto dewelopera Apple,
- Fizyczne urządzenie z iOS do testowania.
W przypadku większości ćwiczeń z programowania sprawdzi się symulator iOS, ale symulatory nie mogą pobierać wersji.
Aby upewnić się, że konfiguracja się udała, sprawdź, czy przycisk „Pobierz” w aplikacji internetowej testera usługi Rozpowszechniania aplikacji
2. Rozpocznij
Skonfiguruj szybki pas.
Rozpowszechnianie aplikacji integruje się z usługą fastlane, co umożliwia automatyzację rozpowszechniania przedpremierowych kompilacji aplikacji. Rozpowszechnianie aplikacji integruje się z konfiguracją szybkiej linii.
- Zainstaluj i skonfiguruj fastlane.
- Podczas konfiguracji uruchom polecenie
fastlane init
w katalogu głównym projektu i wybierz opcję „Konfiguracja ręczna”. Zobaczysz podkatalogfastlane
zawierający elementyFastfile
,Appfile
iPluginfile
, których użyjesz do skonfigurowania szybkiej linii.
Instalowanie interfejsu wiersza poleceń Firebase
Musisz też zainstalować interfejs wiersza poleceń Firebase. Jeśli używasz systemu macOS lub Linux, możesz uruchomić następujące polecenie cURL:
curl -sL https://firebase.tools | bash
Jeśli używasz systemu Windows, przeczytaj instrukcje instalacji, by pobrać samodzielny plik binarny lub zainstalować go za pomocą npm
.
Po zainstalowaniu interfejsu wiersza poleceń uruchomienie interfejsu firebase --version
powinno zgłosić wersję 12.0.0
lub nowszą:
$ firebase --version 12.0.0
3. Utwórz aplikację w Fastlane
Tworzenie aplikacji
- Ustaw pewne zmienne globalne dla fastlane (szybkiej linii) w:
./fastlane/Appfile.
podaj identyfikator aplikacji oraz identyfikator Apple ID:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- Utwórz pierwszy pas i użyj działania fastlane
build_app
(znanej też jakogym
), aby stworzyć aplikację, dodając do./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- Podpisz aplikację do dystrybucji.
W ramach tych ćwiczeń w Codelabs będziesz zarządzać własnym certyfikatem i profilem za pomocą narzędzia get_certificates
(nazywanego też cert
), które generuje lokalnie certyfikaty podpisywania i przechowuje wszystko w pęku kluczy macOS. Zazwyczaj jednak lepiej jest używać szybkiej ścieżki sync_code_signing action
(znanej też jako match
), aby bezpiecznie zarządzać certyfikatami i profilami podpisywania kodu w zespole.
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- Skonfiguruj profil obsługi administracyjnej aplikacji za pomocą działania
get_provisioning_profile
(nazywanego teżsigh
). Pozwoli Ci to udostępnić aplikację testerom.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [Opcjonalnie] Jeśli Twoja aplikacja nie była jeszcze uruchamiana po raz pierwszy, uruchom to polecenie, aby utworzyć aplikację w konsoli Apple dla deweloperów:
$ fastlane produce --skip_itc
- Na koniec stwórz swoją aplikację i poruszaj się po niej.
Wyświetli się prośba o podanie identyfikatora Apple ID, hasła (przechowywanego w pęku kluczy) i identyfikatora pakietu aplikacji.
$ fastlane build
W razie jakichkolwiek problemów zapoznaj się z przewodnikiem rozwiązywania problemów z szybką trasą.
4. Prześlij aplikację do Firebase
Gdy masz już aplikację, możesz przesłać ją do usługi Rozpowszechnianie aplikacji.
Tworzenie i konfigurowanie projektu Firebase
- Zaloguj się w Firebase.
- W konsoli Firebase utwórz lub dodaj nowy projekt, a potem nazwij go „Ćwiczenie z programowania dotyczące eksportowania danych UDID”.
Nie musisz włączać Google Analytics w tym projekcie.
- Kliknij Utwórz projekt.
Dodawanie do projektu aplikacji na iOS
- Kliknij ikonę iOS, aby utworzyć nową aplikację Firebase na iOS, i wpisz identyfikator pakietu aplikacji.
- Pomiń kilka następnych kroków i kliknij Przejdź do konsoli. Pakiety SDK dodasz do aplikacji później.
Twój projekt i aplikacja są teraz dostępne na stronie Przegląd projektu.
Włącz Rozpowszechnianie aplikacji
- W sekcji dotyczącej premiery W sekcji Monitorowanie kliknij Rozpowszechnianie aplikacji.
- Po zaakceptowaniu warunków kliknij „Rozpocznij”. aby włączyć Rozpowszechnianie aplikacji dla Twojej aplikacji.
Konfigurowanie dystrybucji w fastlane
- Aby dodać Rozpowszechnianie aplikacji do konfiguracji fastlane, uruchom następujące polecenie w katalogu głównym projektu na iOS.
Jeśli w poleceniu pojawi się opcja, wybierz Opcja 3. RubyGems.org:
$ fastlane add_plugin firebase_app_distribution
- Sprawdź, czy wtyczka została zainstalowana:
$ fastlane
W danych wyjściowych na liście zainstalowanych wtyczek powinien pojawić się fastlane-plugin-firebase_app_distribution
.
- Po potwierdzeniu instalacji wtyczki wybierz opcję 0, aby anulować.
Uwierzytelnianie projektu Firebase
Aby korzystać z wtyczki fastlane, musisz najpierw uwierzytelnić swój projekt Firebase.
- Uruchom to polecenie, aby połączyć interfejs wiersza poleceń z kontem Google:
$ firebase login
- Gdy polecenie wygeneruje link uwierzytelniania, otwórz go w przeglądarce.
- Gdy pojawi się taka prośba, zaloguj się na swoje konto Google i przyznaj uprawnienia dostępu do projektu Firebase.
Dystrybucja aplikacji
Możesz teraz rozpowszechniać aplikację.
- Na górze
./fastlane/Fastfile
zdefiniuj zmienną o nazwiefirebase_app_id
. Zastąp<your_app_id>
identyfikatorem utworzonej aplikacji Firebase (znajdziesz go na stronie ustawień projektu).
Parametr Fastfile
jest napisany w języku Ruby, więc do definiowania zmiennych użyj składni Ruby.
firebase_app_id = "<your_app_id>"
- Dodaj nowy pas o nazwie
distribute
, który wywołuje pas ruchu, a następnie rozpowszechnia aplikację za pomocą działaniafirebase_app_distribution
.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- Wyznacz nowy pas, aby stworzyć aplikację i stworzyć rozpowszechnianie.
$ fastlane distribute
Plik Fastfile powinien wyglądać tak:
firebase_app_id = "<your Firebase app ID>"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
Po odświeżeniu konsoli Firebase zobaczysz nową wersję aplikacji.
5. Zaproś testerów do pobrania aplikacji
Gdy tester otrzyma zaproszenie do testowania kompilacji ad hoc, pojawi się prośba o zgodę na udostępnianie jego identyfikatora UDID. Jeśli wyrażą na to zgodę, Rozpowszechnianie aplikacji będzie zbierać informacje z urządzenia i wysyłać Ci e-maile z powiadomieniem. W tej sekcji dodasz siebie jako testera, który pozwoli Ci pobrać i przetestować rozpowszechnioną przez Ciebie aplikację.
Dodawanie siebie jako testera wersji
- W sekcji
firebase_app_id
u góry pliku Fastfile utwórz zmienną do przechowywania danych o testerach. Podaj też swój adres e-mail i inne opcjonalne adresy e-mail, które chcesz wypróbować.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- Zastosuj metodę Array#join Ruby, aby przekształcić tablicę
app_testers
w ciąg znaków oddzielonych przecinkami, którego oczekuje parametrtesters
. Następnie przekaż wynik do parametrutesters
dlafirebase_app_distribution.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
Plik Fastfile powinien wyglądać teraz tak:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
- Ponownie przejedź pasem.
$ fastlane distribute
Gdy wyznaczysz ten pas, dodani testerzy otrzymają e-maila z zaproszeniem z usługi Rozpowszechniania aplikacji z powiadomieniem o nowej wersji. W konsoli Firebase zobaczysz teraz dodanych testerów w sekcji wersji aplikacji.
Ponieważ został przez Ciebie podany adres e-mail, otrzymasz e-maila z usługi Rozpowszechniania aplikacji przez Firebase z zaproszeniem do przetestowania aplikacji. Jesteś teraz pierwszym testerem. Przejdź do sekcji poniżej, aby skonfigurować urządzenie testowe jako tester.
Rejestrowanie urządzenia testowego
Aby uzyskać dostęp do wersji aplikacji, do testowania których Cię zaproszono, jako tester musisz zalogować się w Google na urządzeniu testowym. Twoja kompilacja testowa jest wersją doraźną, więc musisz też zarejestrować urządzenie testowe, instalując profil Firebase. Późniejsze wersje będą dostępne w aplikacji internetowej testera Rozpowszechniania aplikacji za pomocą klipu z internetu dodanego do ekranu głównego urządzenia.
- Na urządzeniu testowym iOS otwórz e-maila wysłanego z Rozpowszechniania aplikacji przez Firebase i kliknij link Rozpocznij. Pamiętaj, aby otworzyć link w przeglądarce Safari.
- Jesteś teraz w aplikacji internetowej testera usługi Rozpowszechniania aplikacji. Na stronie, która się wyświetli, zaloguj się na swoje konto Google i kliknij Zaakceptuj zaproszenie.
- Teraz możesz przeglądać wersje, do których Cię zaproszono. Pod jedną z wersji kliknij Zarejestruj urządzenie.
- Gdy pojawi się prośba, pobierz profil Firebase, a potem zainstaluj go w aplikacji Ustawienia.
Zainstalowanie profilu daje Firebase uprawnienia do:
- Zarejestruj urządzenie testowe, zbierając jego unikalny identyfikator (UDID).
Firebase wysyła wszystkim właścicielom i edytorom projektu Firebase e-maila z identyfikatorem UDID urządzenia testowego.
- Zainstaluj wycinek internetowy na ekranie głównym urządzenia testowego. Klip internetowy otwiera aplikację internetową testera w usłudze Rozpowszechniania aplikacji, dzięki której możesz zainstalować wszystkie aplikacje testowe i uzyskać do nich dostęp.
W aplikacji internetowej testera usługi Rozpowszechniania aplikacji urządzenie testowe jest teraz zarejestrowane na potrzeby wersji aplikacji.
Po udostępnieniu Firebase identyfikatora UDID urządzenia testowego możesz wznowić działanie jako deweloper. Na karcie Testerzy w panelu dystrybucji aplikacji informacje o testerach pojawią się w sekcji aplikacji ze stanem „Zaakceptowano”:
W następnej sekcji dodasz identyfikator UDID urządzenia do profilu udostępniania aplikacji, a potem utworzysz wersję aplikacji współpracującą z urządzeniem testowym.
Eksportowanie identyfikatorów UDID urządzeń testowych
Jako deweloper otrzymasz z Firebase e-maila z identyfikatorem UDID urządzenia testowego. Opcjonalnie aplikacja Rozpowszechnianie aplikacji ułatwia zbieranie wielu nowych identyfikatorów UDID urządzeń naraz, ponieważ umożliwia ich eksportowanie bezpośrednio z konsoli Firebase do nieprzetworzonych plików tekstowych.
- Aby wyeksportować wszystkie identyfikatory UDID, otwórz menu Testers & Grupy.
- Kliknij Eksportuj identyfikatory UDID Apple.
Plik powinien zawierać identyfikator UDID urządzenia testowego.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
Identyfikatory UDID można też eksportować z wiersza poleceń, używając szybkiej linii, co zrobisz w następnej sekcji.
6. Zaktualizuj profil obsługi administracyjnej aplikacji i skompiluj ją od nowa
Teraz dodaj identyfikator UDID urządzenia testowego do profilu udostępniania aplikacji, ponownie skompiluj wersję aplikacji, która współpracuje z Twoim urządzeniem, i rozpowszechnij nową wersję.
Dodaj pasek eksportu UDID
- Dodaj kolejną zmienną na górze pliku Fastfile i ustaw ją na ścieżkę pliku, w której znajdują się testerzy zostaną pobrane identyfikatory UDID urządzeń.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- Skonfiguruj nowy pas, który będzie korzystać z działania eksportu UDID wtyczki do dystrybucji aplikacji, aby pobrać identyfikatory UDID testerów – tak jak w konsoli.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- Aby pobrać identyfikatory UDID, pojedź tym pasem.
$ fastlane download_udids
- Wydrukuj pobrany plik, który powinien zawierać identyfikatory UDID urządzeń testowych.
$ cat tester_udids.txt
Dodawanie urządzeń do konsoli Apple dla deweloperów
- Utwórz następujący pas, aby dodać identyfikatory UDID do listy urządzeń w konsoli programisty Apple i dodać je do profilu obsługi administracyjnej przy użyciu czynności fastlane
register_devices
:
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- Następnie wyznacz pas:
$ fastlane add_new_devices
Nowe urządzenia powinny pojawić się na liście urządzeń w konsoli programisty.
Dodawanie urządzeń do profilu obsługi administracyjnej
- Dodaj argument
force
do kroku profilu obsługi administracyjnej na pasiebuild
, aby wymuszać odbieranie nowych urządzeń za każdym razem, gdy tworzysz nowe urządzenia.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
Wykonaj ponownie ścieżkę, aby utworzyć i przesłać
Uaktualnij pas distribute
o nowe pasy, aby dodać urządzenia do profilu obsługi administracyjnej, ponownie skompilować aplikację i ją rozpowszechniać.
- Wywołaj nowe pasy z:
distribute
:
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: "1:123456789:ios:abcd1234",
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
- Przejdź pasem
distribute
:
$ fastlane distribute
Plik Fastfile powinien wyglądać teraz tak:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
Pobieranie wersji z urządzenia testowego
Gdy aplikacja zawiera identyfikatory UDID urządzeń testowych, możesz je zainstalować na urządzeniach testowych.
- Na urządzeniu testowym wróć do aplikacji internetowej testera w usłudze Rozpowszechnianie aplikacji, korzystając z linku w e-mailu lub ikony na ekranie głównym urządzenia.
Po przejściu do aplikacji z programowaniem UDID zobaczysz, że wersja jest gotowa do pobrania.
- Jeśli używasz urządzenia fizycznego, naciśnij Pobierz, a potem zainstaluj i uruchom aplikację.
7. Gratulacje
Masz teraz skonfigurowaną funkcję Rozpowszechniania aplikacji i fastlane (szybkość) w celu zautomatyzowania procesu testowania przedpremierowych wersji aplikacji. Teraz, gdy chcesz zaprosić kolejnych testerów lub dodać ich identyfikatory UDID do aplikacji, wystarczy uruchomić jedno polecenie: fastlane distribute
.
Nie musisz już samodzielnie zbierać identyfikatorów UDID od testerów ani aktualizować list urządzeń i profili obsługi administracyjnej w konsoli Apple dla deweloperów. Nie musisz nawet otwierać XCode.
Ten przepływ pracy można łatwo skonfigurować tak, aby uruchamiał się co godzinę lub codziennie w środowisku ciągłej integracji.
Więcej informacji
- Poznaj funkcje usługi Rozpowszechniania aplikacji Firebase, w tym nasz pakiet SDK w aplikacji na iOS.
- Więcej informacji o fastlane
- Zarządzaj podpisywaniem kodu zespołu za pomocą
match
- Zintegruj fastlane z CI