Fastlane: automatizare iOS pe Cruise Control
Publicat: 2022-03-11Crearea de software pentru iOS înseamnă mai mult decât scrierea codului Objective-C sau Swift: implică cunoașterea modului în care funcționează UIKit, cum se fac certificatele, cum să-ți publici aplicația în magazin, cum să faci față recenziilor aplicațiilor și multe altele. Dacă ți se pare obositoare această listă de sarcini eternă, o anumită automatizare în fluxul tău de lucru este exact ceea ce ai nevoie.
Faceți cunoștință cu Fastlane, instrumentul conceput pentru a vă economisi minute sau chiar ore la fiecare implementare.
Fastlane vă ajută să automatizați procesul de trimitere a versiunilor beta către Crashlytics, TestFlight, App Store și multe altele.
În acest articol, veți afla cum puteți utiliza Fastlane pentru a automatiza fluxul de lucru pentru implementarea aplicației iOS. Deși ne vom concentra pe aspectul iOS al acestui instrument, Fastlane funcționează la fel de bine pentru automatizarea dezvoltării Android.
Noțiuni introductive cu Fastlane
Există mai multe metode de instalare între care puteți alege, în funcție de ceea ce vi se pare cel mai ușor. Dacă aveți Homebrew instalat și configurat, instalarea Fastlane necesită o singură comandă:
brew cask install fastlane
În caz contrar, Fastlane fiind un instrument bazat pe Ruby, gem
este întotdeauna o opțiune:
sudo gem install fastlane -NV
Sau puteți descărca oricând Fastlane de pe site-ul oficial.
După ce ați instalat Fastlane, rulați fastlane init
în directorul proiectului și urmați instrucțiunile.
Automatizare implementare
Cu Fastlane instalat, acum puteți scrie scripturi Ruby pentru a indica pas cu pas ceea ce trebuie să faceți pentru a obține implementarea acolo unde doriți. Acest lucru se face folosind acțiuni, instrumente și benzi.
Instrumente, acțiuni și pluginuri Fastlane
Fastlane funcționează având la bază instrumente care vă ajută să vă construiți aplicația. Pe lângă instrumentele de construcție, există peste 170 de integrări încorporate cu servicii precum Crashlytics, HockeyApp, TestFlight și mai multe plugin-uri pe care terți le fac și le publică, astfel încât să vă puteți conecta la alte servicii și multe altele.
În esență, obțineți instrumentele principale care vă permit să efectuați o varietate de sarcini: de la realizarea de capturi de ecran automate până la încadrarea lor și încărcarea lor în magazin, vă permite să executați automat toate testele înainte de a construi aplicația.
Acțiunile sunt instrumentele de bază pe care le are Fastlane, iar pluginurile sunt o modalitate de a adăuga acțiuni terță parte la configurația dvs. Fastlane.
benzi
Fastlane folosește benzi care grupează în esență o listă de acțiuni sau pluginuri secvenţial, astfel încât să puteți obține același rezultat de fiecare dată.
Când rulați o bandă, fiecare acțiune va exporta o variabilă de mediu, iar următoarele acțiuni vor obține automat aceste variabile pentru a continua procesul. De exemplu, utilizarea acțiunii de gym
va avea ca rezultat generarea căii fișierului .ipa
, iar utilizarea crashlytics
va accesa această locație .ipa
pentru a încărca acest fișier în sistemul său de distribuție a serviciului beta.
Folosind Fastlane cu iOS
Începeți cu un nou client Toptal care dorește o aplicație foarte simplă. Designul este deja realizat, iar aplicația poate fi codificată în câteva săptămâni. Următorul pas este să începeți să îl codați și, în timpul procesului de iterare, veți trimite o aplicație beta la fiecare câteva săptămâni clientului, astfel încât acesta să vă poată vedea progresul și să vă ofere feedback despre cum funcționează lucrurile.
De fiecare dată când trimiteți o versiune beta clientului, veți trece printr-o listă de verificare de bază: semnarea aplicației, încărcarea ei într-un serviciu beta, adăugarea unei noi versiuni etc. Adăugați la aceasta lucrurile pe care trebuie să le faceți o dată (în fiecare an): semnarea certificatelor, semnarea certificatelor de notificare push (dacă este necesar) și multe altele.
Cu Fastlane, toate acestea se pot întâmpla acum automat!
Se trimite la Crashlytics Beta
De exemplu, trebuie să creați certificate de semnare și profiluri de furnizare pentru a vă partaja aplicația prin Crashlytics Beta.
Fastlane are o acțiune numită match
care, odată ce ați configurat-o, face următoarele:
- Creați certificate de semnare de distribuție.
- Creați un profil de furnizare ad-hoc (anexat la certificatul de la #1).
- Salvați certificatul și profilul de la #1 și #2 într-un depozit Git, criptat folosind OpenSSL.
Configurarea este simplă.
Mai întâi, rulați fastlane match init
pentru a începe și, odată ce vă setați depozitul Git, sunați la fastlane match adhoc
pentru a obține un profil de furnizare ad-hoc sau rulați fastlane match appstore
pentru a obține un certificat App Store.

Avantajele utilizării match
sunt că puteți sincroniza foarte ușor certificatele între computere și între colegii de echipă, fără a mai fi nevoie să revocați certificatele și viteza pe care o câștigați. Doar rularea fastlane match appstore
vă oferă un certificat în câteva secunde.
Ei bine, acum avem certificatele și aprovizionarea de care avem nevoie, haideți să lansăm Crashlytics.
Un flux de lucru tipic pentru trimiterea aplicației la Fabric's Crashlytics include următorii pași:
- Creați certificatele de semnare de distribuție.
- Creați un profil de furnizare ad-hoc (anexat la certificatul de la #1).
- Setați aplicația să utilizeze profilul de furnizare de la #2.
- Arhivați aplicația.
- Deschide Fabric și urmează pașii pentru a trimite aplicația către testerii beta.
Fastlane înlocuiește treaba cu asta:
platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end
Acum, rularea fastlane beta
de pe terminalul dvs. va lansa acest script.
Aceasta va apela mai întâi match
, o acțiune care se ocupă de crearea și actualizarea certificatelor de semnare și a profilurilor de furnizare, apoi va apela la sala de gym
, o acțiune care creează și împachetează aplicația pentru dvs., folosind aceleași certificate și profiluri create anterior și, în sfârșit, crashlytics
, care este Vom lua acest .ipa
semnat și îl încarc în serviciul Crashlytics.
Toți acești pași sunt apelați, întotdeauna, în aceeași ordine, făcând fișierul rezultat mai previzibil și reducând erorile.
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!
Deci, aceasta a fost o configurație de bază pentru cum să rulați Fastlane pentru a trimite aplicația dvs. la Crashlytics. Ce altceva putem automatiza?
Creșterea versiunilor de compilare
Putem, de exemplu, să setăm ca de fiecare dată când vom trimite o versiune beta, să dorim să creștem numărul versiunii de compilare.
Acest lucru poate fi realizat folosind o acțiune numită increment_build_number
care poate fi apelată de la un terminal prin fastlane run increment_build_number
sau utilizată în linie în banda noastră beta:
platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end
Felicitări! Acum aveți un script de implementare automată care crește, de asemenea, numărul versiunii dvs. de compilare. Singura avertizare este că, odată ce apelați această bandă, veți avea fișiere modificate în proiectul dvs. (sau, cel puțin, cele care încorporează numărul de construcție).
În cazul în care plănuiați să efectuați acea modificare în depozit, există o acțiune pentru aceasta: commit_version_bump
. Această acțiune comite fișierele cu noul număr de versiune.
platform :ios do lane :beta do increment_build_number match(type: "adhoc") gym crashlytics commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end
Acest lucru va trimite fișiere cu un mesaj de confirmare precum acesta „Versiune Bump la 27”.
Crashlytics la TestFlight
Ei bine, dacă ați ajuns până aici, puteți avea o implementare automată a Crashlytics într-un timp foarte scurt, care vă va economisi nenumărate ore pe termen lung. Cea mai bună parte este că, dacă ați dori să trimiteți aplicația la TestFlight, tot ce trebuie să faceți este să schimbați crashlytics
în pilot
.
Sau puteți crea o bandă separată pentru asta:
platform :ios do lane :beta-testflight do increment_build_number match(type: "adhoc") gym pilot commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end
Automatizarea iOS simplificată
Fastlane este simplu și ușor de utilizat. Dar, aduce o valoare uimitoare fluxului de lucru obișnuit de dezvoltare iOS, scutindu-vă de a face lucruri ușoare și ore din timpul pe care le-ați fi irosit.
Sper că veți găsi utilă această introducere în Fastlane. Puteți consulta documentația oficială pentru a afla mai multe despre Fastlane, în special lista de acțiuni dacă sunteți în căutarea de inspirație pentru ceea ce puteți automatiza pentru proiectele dvs. actuale și viitoare iOS.