Fastlane: Automatyzacja iOS w tempomacie

Opublikowany: 2022-03-11

Tworzenie oprogramowania dla systemu iOS to coś więcej niż tylko pisanie kodu Objective-C lub Swift: obejmuje wiedzę o tym, jak działa UIKit, jak tworzone są certyfikaty, jak publikować aplikację w sklepie, jak radzić sobie z recenzjami aplikacji i nie tylko. Jeśli uważasz, że ta wieczna lista zadań jest męcząca, pewna automatyzacja w twoim przepływie pracy jest dokładnie tym, czego potrzebujesz.

Poznaj Fastlane, narzędzie zaprojektowane tak, aby oszczędzić minuty, a nawet godziny przy każdym wdrożeniu.

Automatyzacja dostaw z Fastlane iOS

Fastlane pomaga zautomatyzować proces wysyłania wersji beta do Crashlytics, TestFlight, App Store i wielu innych.

Z tego artykułu dowiesz się, w jaki sposób możesz wykorzystać Fastlane do zautomatyzowania przepływu pracy przy wdrażaniu aplikacji na iOS. Chociaż skupimy się na aspekcie tego narzędzia na iOS, Fastlane działa równie dobrze w przypadku automatyzacji rozwoju Androida.

Pierwsze kroki z Fastlane

Istnieje kilka metod instalacji, które możesz wybrać, w zależności od tego, która jest najłatwiejsza. Jeśli masz zainstalowany i skonfigurowany Homebrew, instalacja Fastlane wymaga tylko jednego polecenia:

 brew cask install fastlane

W przeciwnym razie, ponieważ Fastlane jest narzędziem opartym na Rubinach, gem jest zawsze opcją:

 sudo gem install fastlane -NV

Możesz też zawsze pobrać Fastlane z oficjalnej strony internetowej.

Po zainstalowaniu Fastlane uruchom fastlane init w katalogu projektu i postępuj zgodnie z instrukcjami.

Automatyzacja wdrażania

Po zainstalowaniu Fastlane możesz teraz pisać skrypty w Ruby, które krok po kroku wskazują, co musisz zrobić, aby wdrożyć się tam, gdzie chcesz. Odbywa się to za pomocą akcji, narzędzi i pasów.

Narzędzia, akcje i wtyczki Fastlane

Fastlane działa, mając u podstaw narzędzia, które pomogą Ci zbudować Twoją aplikację. Oprócz narzędzi do kompilacji istnieje ponad 170 wbudowanych integracji z usługami, takimi jak Crashlytics, HockeyApp, TestFlight i innymi wtyczkami, które tworzą i publikują strony trzecie, dzięki czemu możesz łączyć się z innymi usługami i nie tylko.

Zasadniczo otrzymujesz główne narzędzia, które umożliwiają wykonywanie różnych zadań: od robienia automatycznych zrzutów ekranu po ich kadrowanie i przesyłanie do sklepu, umożliwia automatyczne uruchamianie wszystkich testów przed utworzeniem aplikacji.

Akcje są podstawowymi narzędziami, jakie posiada Fastlane, a wtyczki są sposobem na dodawanie działań osób trzecich do konfiguracji Fastlane.

Pasy

Fastlane używa pasów, które zasadniczo grupują listę działań lub wtyczek sekwencyjnie, dzięki czemu za każdym razem możesz osiągnąć ten sam wynik.

Podczas uruchamiania pasa każda akcja wyeksportuje zmienną środowiskową, a następujące akcje automatycznie uzyskają te zmienne, aby utrzymać proces. Na przykład użycie akcji gym spowoduje wygenerowanie ścieżki do pliku .ipa , a użycie crashlytics uzyska dostęp do tej lokalizacji .ipa w celu przesłania tego pliku do systemu dystrybucji usługi beta.

Korzystanie z Fastlane na iOS

Zaczynasz od nowego klienta Toptal, który chce bardzo prostej aplikacji. Projekt jest już gotowy, a aplikację można zakodować w ciągu kilku tygodni. Następnym krokiem jest rozpoczęcie kodowania, a podczas procesu iteracji będziesz co kilka tygodni wysyłać aplikację beta do klienta, aby mógł zobaczyć twoje postępy i przekazać opinię na temat tego, jak wszystko działa.

Za każdym razem, gdy wysyłasz wersję beta do klienta, przechodzisz przez podstawową listę kontrolną: podpisanie aplikacji, przesłanie jej do usługi beta, dodanie do niej nowej wersji itp. Dodaj do tego rzeczy, które musisz zrobić raz (co roku): podpisywanie certyfikatów, podpisywanie certyfikatów powiadomień push (w razie potrzeby) i nie tylko.

Dzięki Fastlane wszystko to może się teraz dziać automatycznie!

Wysyłanie do Crashlytics Beta

Na przykład musisz utworzyć certyfikaty podpisywania i profile udostępniania, aby udostępniać swoją aplikację za pośrednictwem Crashlytics Beta.

Fastlane ma akcję o nazwie match , która po skonfigurowaniu wykonuje następujące czynności:

  1. Utwórz dystrybucyjne certyfikaty podpisywania.
  2. Utwórz profil aprowizacji ad hoc (dołączony do certyfikatu z nr 1).
  3. Zapisz certyfikat i profil z nr 1 i nr 2 w repozytorium Git zaszyfrowanym przy użyciu OpenSSL.

Konfiguracja jest prosta.

Najpierw uruchom fastlane match init , aby rozpocząć, a po skonfigurowaniu repozytorium Git po prostu wywołaj fastlane match adhoc , aby uzyskać profil administracyjny ad-hoc lub uruchom sklep z aplikacjami fastlane match appstore , aby uzyskać certyfikat App Store.

Zaletą korzystania z match jest to, że możesz bardzo łatwo synchronizować certyfikaty między komputerami — i między członkami zespołu — bez konieczności odwoływania certyfikatów, a także z szybkością, którą zyskujesz. Wystarczy uruchomić sklep z fastlane match appstore , aby w kilka sekund otrzymać certyfikat.

Cóż, teraz mamy potrzebne certyfikaty i zabezpieczenia, zróbmy zwolnienie do Crashlytics.

Typowy przepływ pracy związany z przesyłaniem aplikacji do Crashlytics Fabric obejmuje następujące kroki:

  1. Utwórz certyfikaty podpisywania dystrybucji.
  2. Utwórz profil aprowizacji ad hoc (dołączony do certyfikatu z nr 1).
  3. Ustaw swoją aplikację tak, aby korzystała z profilu aprowizacji z punktu 2.
  4. Zarchiwizuj swoją aplikację.
  5. Otwórz Fabric i postępuj zgodnie z instrukcjami, aby wysłać aplikację do testerów wersji beta.

Fastlane zastępuje ten obowiązek następującym:

 platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end

Teraz uruchomienie fastlane beta z terminala uruchomi ten skrypt.

Najpierw wywoła match , czynność, która zajmuje się tworzeniem i aktualizacją certyfikatów podpisywania i profilów obsługi administracyjnej, następnie wywołaj gym , crashlytics , która buduje i pakuje aplikację dla Ciebie przy użyciu tych samych certyfikatów i profili utworzonych wcześniej, a na końcu zamierzam wziąć podpisany .ipa i przesłać go do usługi Crashlytics.

Wszystkie te kroki są wywoływane zawsze w tej samej kolejności, dzięki czemu wynikowy plik jest bardziej przewidywalny i zmniejsza liczbę błędów.

 MacBook-Pro:TestProject user$ fastlane beta +------+-------------------------------------+-------------+ | fastlane summary | +------+-------------------------------------+-------------+ | Step | Action | Time (in s) | +------+-------------------------------------+-------------+ | 1 | Verifying required fastlane version | 0 | | 2 | match | 57 | | 3 | gym | 592 | | 4 | crashlytics | 195 | +------+-------------------------------------+-------------+ [20:25:13]: fastlane.tools just saved you 14 minutes!

Była to więc podstawowa konfiguracja, jak uruchomić Fastlane w celu wysłania aplikacji do Crashlytics. Co jeszcze możemy zautomatyzować?

Zwiększanie wersji kompilacji

Możemy na przykład ustawić, że za każdym razem, gdy będziemy wysyłać betę, chcemy zwiększać numer wersji kompilacji.

Można to osiągnąć za pomocą akcji o nazwie increment_build_number , którą można wywołać z terminala przez fastlane run increment_build_number lub użyć inline w naszej wersji beta:

 platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end

Gratulacje! Masz teraz zautomatyzowany skrypt wdrażania, który również zwiększa numer wersji kompilacji. Jedynym zastrzeżeniem jest to, że po wywołaniu tego pasa będziesz mieć zmienione pliki w swoim projekcie (lub przynajmniej te, które zawierają numer kompilacji).

Jeśli i tak planujesz zatwierdzić tę zmianę w repozytorium, jest na to akcja: commit_version_bump . Ta akcja zatwierdza pliki z nowym numerem wersji.

 platform :ios do lane :beta do increment_build_number match(type: "adhoc") gym crashlytics commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end

Spowoduje to zatwierdzenie plików z komunikatem zatwierdzenia takim jak „Wersja Bump do 27”.

Crashlytics do TestFlight

Cóż, jeśli dotarłeś tak daleko, możesz mieć automatyczne wdrożenie w Crashlytics w bardzo krótkim czasie, co na dłuższą metę pozwoli Ci zaoszczędzić niezliczone godziny. Najlepsze w tym jest to, że jeśli zamiast tego chcesz wysłać swoją aplikację do TestFlight, wystarczy zmienić crashlytics na pilot .

Możesz też utworzyć do tego osobny pas:

 platform :ios do lane :beta-testflight do increment_build_number match(type: "adhoc") gym pilot commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end

Automatyzacja iOS stała się prosta

Fastlane jest prosty i łatwy w użyciu. Wnosi jednak niesamowitą wartość do regularnego przepływu pracy programistycznej na iOS, oszczędzając ci robienia drobnych rzeczy i godzin czasu, które byś zmarnował.

Mam nadzieję, że to wprowadzenie do Fastlane okaże się przydatne. Możesz sprawdzić oficjalną dokumentację, aby dowiedzieć się więcej o Fastlane, zwłaszcza listę działań, jeśli szukasz inspiracji do tego, co możesz zautomatyzować w swoich bieżących i przyszłych projektach iOS.