Livrare continuă Cu fastlane pentru iOS

Introducere

Dezvoltatorii iOS au fost destul de norocoși să se bucure și să lucreze cu platforma de dezvoltare robustă pe care Apple a furnizat-o, în primul rând Xcode. Acest lucru a ajutat la inspirarea aplicațiilor interesante și puternice pe care consumatorii le folosesc astăzi în App Store. Xcode oferă un IDE intuitiv și, împreună cu apariția lui Swift ca limbă de programare cu adevărat modernă, a făcut programarea pe platformă a plăcerii absolute.

Cu toate acestea, în timp ce aspectul de dezvoltare al fluxului de lucru este coerent, fluxul de lucru se descompune atunci când este vorba de treburile implicate în gestionarea semnării și distribuirii de coduri. Aceasta a reprezentat o problemă îndelungată pentru platformă, iar în timp ce sa îmbunătățit treptat, este încă o piedică pentru aproape toți dezvoltatorii. Acest lucru a dus în multe privințe la diminuarea livrării continue a aplicațiilor - adică nevoia de a construi manual și de a distribui aplicațiile zilnic pe plan intern și extern este greșită și laborioasă. 

Aici intră rapidlane. Suita rapidă de instrumente face distribuirea aplicațiilor mult mai ușoară, permițând dezvoltatorilor să se concentreze asupra aplicațiilor lor și să lase uneltele să preia sarcini cum ar fi gestionarea profilurilor de furnizare și a certificatelor și construirea, ambalarea și distribuirea aplicațiilor. Unul dintre lanțurile de unelte ale fastlane este o soluție automată de livrare continuă pe bază de client, pe care dezvoltatorii iOS le pot folosi pentru a asigura că aplicațiile lor sunt testate și validate în mod continuu de către alții, cu o intervenție minimă la om. 

Dezvoltat de Felix Krause (@krausefx), Fastlane este alcătuit dintr-o suită de instrumente open-source care unifică automatizarea construirii și implementării aplicațiilor iOS prin linia de comandă, precum și integrarea cu diverse biblioteci terțe, în plus față de API-urile proprii ale Apple . Ca o unelte de instrumente de cult printre dezvoltatorii iOS și susținută de Google, fastlane vă va economisi mult timp automatizând o mulțime de sarcini zilnice și săptămânale manuale.

În acest tutorial, vom explora două caracteristici foarte populare ale fastlane: semnarea codului și ambalarea / distribuirea aplicațiilor.

Obiectivele acestui tutorial

Acest tutorial vă va prezenta șirul de instrumente fastlane și vă va arăta cum să utilizați instrumentul pentru a automatiza și optimiza fluxul de lucru pentru dezvoltarea iOS. O sa inveti:

  • elementele de bază ale începutului cu fastlane
  • codul care semnează aplicația dvs.
  • ambalarea și distribuirea aplicației dvs.

Cunoașterea presupusă

Acest tutorial presupune că aveți o cunoaștere de lucru a dezvoltării Swift și iOS, deși nu veți face coduri Swift în acest tutorial. Veți utiliza promptul de comandă pentru a construi și a rula comenzi fastlane. 

Noțiuni de bază Cu fastlane

Câmpul de instrumente fastlane este în esență scris în Ruby și se conectează la Apple Developer Center și iTunes Connect API prin biblioteca Ruby, autentificând și autorizând utilizatorii în siguranță. Funcționează în jurul creării unui fișier de configurare, denumit Fastfile, pe care îl puteți considera ca fiind un fișier de rețete în care setați acțiunile pe care doriți să le efectuați atunci când construiți aplicația. Aceste acțiuni sunt organizate în "benzi". De exemplu, ați configura o bandă pentru implementarea în App Store și o altă bandă pentru distribuirea către TestFlight. O bandă ar putea fi compusă din următoarele acțiuni individuale:

  1. construirea proiectului
  2. crescând numărul de construire
  3. testele unității de test
  4. trimiterea dvs. .ipa la TestFlight
  5. trimiterea unui mesaj Slack echipei tale

Vă puteți gândi la benzi ca și funcții care au sarcini legate de grup. Puteți chiar să apelați metode de pe alte benzi, pentru a vă deconecta și reutiliza benzile. 

Dar, înainte de a ne arunca cu capul în acțiunile fastlane, va trebui să configurați mediul pentru a utiliza rapidlane.

Configurarea rapidă

Asigurați-vă că aveți cea mai recentă versiune de Xcode instalată. De asemenea, va trebui să aveți instalate Xcode Tools în sistemul dvs. Puteți verifica dacă Xcode Tools este instalat introducând următoarele în terminal:

xcode-select -p

Dacă vă întoarceți calea completă la dosarul dezvoltatorului, atunci sunteți gata să plecați. Ar trebui să vedeți ceva de felul următor.

$ /Applications/Xcode.app/Contents/Developer

În caz contrar, hai să obținem cea mai recentă versiune a instrumentelor pentru linia de comandă Xcode tastând următoarele, în terminal:

xcode-select - install

Ar trebui să obțineți un prompt similar cu următorul text: 

Apoi, va trebui să instalați Homebrew. Homebrew este un manager de pachete puternic care vă permite să instalați sute de unelte open source, rapid printre ele. Pentru a instala Homebrew, tastați următoarele în linia de comandă:

/ usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/

Odată ce Homebrew este instalat, puteți instala rapidlane introducând:

buton de fabricație instalați rapidlane

Rețineți că dacă preferați să nu instalați Homebrew, puteți instala rapidlane direct în terminal prin ruby, introducând următoarele:

sudo gem instala fastlane -NV

Pentru a confirma că FastLane este instalat și gata în sistem, introduceți următoarea comandă în terminal pentru a inițializa un nou fișier de configurare fastlane:

fastlane init

Veți fi invitat să introduceți ID-ul dvs. Apple astfel încât să puteți conecta rapid la iTunes Connect fără probleme. Completați orice alte întrebări prompte și veți vedea un nou /pistă rapidă sub-directorul creat pentru dvs. Veți fi în primul rând preocupat de / Fastlane / Fastfile fișier de configurare, unde veți orchestra toate acțiunile dvs. fastlane. 

Uitați-vă puțin la dosar. Veți lucra cu acesta în următoarele secțiuni, începând cu configurarea rapidlane pentru a semna codul aplicațiilor. 

Codul Semnarea aplicațiilor dvs.

Una dintre cele mai populare caracteristici ale fastlane ca un toolchain este de a fi în măsură să codul semn apps în mod automat, evitând încercarea de a avea de a face cu certificate și profile de provizionare. Acest lucru poate fi o mulțime de muncă și, în plus, când schimbați mașinile sau la bordul unui nou membru al echipei, trebuie să o faceți din nou. Fastlane oferă trei acțiuni care vă ajută să gestionați semnarea codului: cert, suspin și potrivire. 

cert, în timp ce este util în mod propriu, de obicei funcționează în tandem cu suspinul pentru a finaliza procesul de semnare a codului aplicației, gestionând, respectiv, certificatele și profilurile de provizionare. Acesta nu numai creează certificatul pentru dvs., ci va genera automat o nouă solicitare de semnare a cheii private atunci când este necesar, precum și recuperarea și instalarea certificatului în brelocul dvs., asigurându-vă că certificatul dvs. este valabil de fiecare dată când executați cert. 

suspinul creează profilul corespunzător de provizionare pentru certificatul dvs. pentru dezvoltare, Ad Hoc sau pentru App Store. Ca și cert, suspinul asigură faptul că acest profil de provizionare rămâne actual, recuperat și instalat în lanțul dvs. de chei. Împreună, aceste două formează perechea de semnare a codului pentru aplicația dvs. Dar, înainte de a învăța cum să folosiți cert și suspin, există o acțiune în plus pe care vreau să o introduc: potrivire. 

meciul combină cele două acțiuni anterioare, dar vă permite să împărțiți codul dvs. de semnare a identității în echipă sau pe mai multe mașini, în siguranță și privat prin propriul depozit GitHub, creând toate certificatele și profilurile necesare, astfel încât noii membri să poată obține aceste acreditări apelând comanda fastlane Meci. Pentru mai multe informații despre conceptul de meci, consultați noua abordare a ghidului de semnare a codului.

Pentru a începe folosind cert, executați următoarea comandă: 

fastlane cert

În mod similar, pentru a rula suspin:

suspinul rapid

Dacă doriți să vedeți o listă de opțiuni pe care cert sau suspin oferă, puteți face acest lucru cu următoarele comenzi:

actiune fastlane cert ... suspin actiune fastlane

Pe lângă rularea acestor comenzi ad hoc, puteți include una sau ambele acțiuni ca parte a fluxului de lucru automatizat, în fișierul de configurare Fastfile pe care l-am menționat mai devreme:

banda: TestApp cert # sau alias get_certificates suspin # sau alias get_provisioning_profile end

Puteți rula apoi întreaga bandă emise următoarea comandă:

FastLane TestApp

Cu două linii simple, acum beneficiați de faptul că aveți certificate și profiluri de provizionare create pentru dvs. și menținute automat. Apoi, vă veți arunca cu capul în modul în care rapidlane vă poate ajuta să împachetați și să distribuiți aplicațiile.

Pachete și distribuiți aplicațiile 

Următoarele două acțiuni pe care le veți învăța sunt sală de gimnastică și livrare, pe care le veți folosi pentru a construi, a pachetelor și a distribui aplicația dvs. la TestFlight sau la App Store. sală de gimnastică construiește și pachete aplicația dvs. printr-o singură linie de comandă, generând un fișier ipa semnat pentru dvs.. 

Prin automatizarea acestui proces ca parte a Fastfile-ului, puteți declanșa construirea și ambalarea printr-un flux de lucru de integrare continuă și aveți cea mai recentă versiune a aplicației dvs. în mâinile utilizatorilor zilnic sau orar. Pentru a pachet aplicația prin intermediul FastLane, puteți rula pur și simplu:

fastlane sală de gimnastică

Pentru a specifica un anumit spațiu de lucru și o schemă, puteți adăuga următorii parametri opționali:

sală de gimnastică fastlane - spațiu de lucru "YourApp.xcworkspace" - schema "AppSchemeName" 

Ca și cum Fastfile, fastlane oferă un fișier de configurare convenabil numit a Gymfile unde puteți stoca toate comenzile dvs. specifice pentru construire, cum ar fi spațiul dvs. de lucru, schemele și multe altele, economisind că trebuie să introduceți textul de fiecare dată sau să îl expuneți în interiorul Fastfile Fișier de configurare. Pentru a crea un nou Gymfile, introduceți pur și simplu următoarele:

fastlane sală de gimnastică init

Apoi puteți edita acel fișier și introduceți parametrii de configurare necesari pentru proiectul dvs..

În continuare, livrarea preia locurile în care sala de gimnastică a fost oprită, distribuind-o .ipa fișier fără a fi nevoie să treacă prin Xcode. Ca omolog al sală de gimnastică, livrarea nu este numai capabilă să vă livreze .ipa fișier binar, dar, de asemenea, încarcă capturile de ecran și metadatele pentru iTunes Connect pentru dvs., precum și trimiterea aplicației dvs. în App Store. 

De asemenea, acțiunea vă poate descărca capturile de ecran existente și metadatele din iTunes Connect. Cea mai simplă comandă de acțiune este de a apela:

fastlane livreaza init

Rezultatul final este un director de metadate și capturi de ecran împreună cu fișierul de configurare Deliverfile, care este similar cu Gymfile și Fastfile

Apoi puteți modifica conținutul acestor subfoldere pentru a modifica metadatele aplicației. Pentru a încărca metadatele, executați:

fastlane livra

Pentru a trimite aplicația dvs. spre examinare, adăugați următorii parametri:

fastlane livra --ipa "App.ipa" --submit_for_review

Pentru a descărca metadate sau capturi de ecran, adăugați următorii parametri, respectiv:

rapidlane livreaza download_metadata ... fastlane livreaza download_screenshots

Puteți modifica capturile de ecran în cadrul / capturi de ecran sub-folder, dar fastlane oferă o altă acțiune care poate automatiza procesul de generare a capturilor de ecran pentru dvs. Deși capturile de ecran nu se află în sfera de aplicare a acestui articol, puteți afla despre acest lucru într-un articol în viitorul fastlane. 

Ca și în setul anterior de acțiuni, puteți fie să conduceți sală de gimnastică și să o livrați pe cont propriu, fie să o includeți ca parte a fluxului de lucru de automatizare, în cadrul Fastfile:

banda: TestApp do cert sigh gym (schema: "AppSchemeName", spațiul de lucru: "YourApp.xcworkspace") # alias pentru "build_ios_app"

Concluzie

Prin permiterea livrării continue prin automatizare, fastlane ia povara muncii de la dezvoltatorii iOS cu o soluție la cheie cu un singur clic pentru construire, ambalare, distribuire, semnare de coduri, generare de screenshot-uri și multe altele. Acest tutorial doar zgârie suprafața a ceea ce este posibil cu fastlane, iar în articolele ulterioare vom explora mai multe acțiuni pe care le puteți implementa pentru a vă automatiza și optimiza mai mult fluxul de lucru. 

De la generarea de capturi de ecran localizate la integrarea sa profundă cu instrumente proeminente precum Jenkins CI, Git, Crashlytics, HockeyApp și Slack, fastlane este la fel de esențial ca și CocoaPods pentru kitul de dezvoltare iOS pentru dezvoltare. Are o comunitate robustă de pluginuri terță parte și este susținută și de Google.

De asemenea, puteți afla totul despre arta livrării continue și despre fastlane în cartea mea Livrare continuă pentru mobil Cu fastlane, disponibilă de la Packt Publishing.

Și în timp ce sunteți aici, verificați câteva dintre celelalte postări ale noastre privind dezvoltarea aplicațiilor iOS!

Cod