2018: cea mai mare shakeup în ani pentru iOS Release și CI / CD Process. Cum să te pregătești pentru 2019

Linkuri originale:

În 2018, Mobile DevOps și lumea CI / CD au fost zguduite de câteva anunțuri și noutăți mari. Aceste anunțuri sunt fie de la Apple, fie din comunitățile open-source, dar acestea vor schimba cu siguranță modalitățile tradiționale de a face CI / CD pentru aplicațiile iOS. În această postare, vom privi înapoi în 2018 pentru a privi cu nerăbdare în 2019. Vom vedea ce s-a schimbat în 2018 în dispozitivele Mobile DevOps și Continuous Delivery pentru aplicațiile iOS și cum va avea un impact potențial în procesul de lansare și CI / CD de iOS în 2019.

1. Apple + BuddyBuild

În ziua de noi ani a anului 2018, Apple a achiziționat BuddyBuild și lucrurile din Mobile DevOps se schimbă drastic. BuddyBuild este unul dintre serviciile excelente de CI / CD cloud pentru aplicații mobile. De când BuddyBuild devine parte a Apple, acestea au întrerupt suportul pentru aplicațiile Android. De asemenea, a încetat să mai primească noii clienți pentru aplicații iOS. Această veste a fost unul dintre cele mai importante șocuri pentru companiile care folosesc serviciul BuddyBuild atât pentru Android cât și pentru iOS. Aceste companii trebuie să caute un alt serviciu CI / CD pentru aplicațiile Android, ceea ce duce la o muncă de migrare costisitoare. Aceasta a fost, de asemenea, o lecție importantă pentru companiile care folosesc serviciile CI / CD bazate pe Cloud, le face să se gândească dacă să gestioneze infrastructura mobilă în interior sau să o externalizeze altor companii. Am acoperit argumentele pro și contra ale gestionării infrastructurii DevOps mobile în interior aici. Fuziunea Apple și BuddyBuild pun în discuție și viitorul Xcode Serve. Acesta este, de asemenea, un sunet de alarmă pentru companiile care utilizează Serverul Xcode în acest moment.

Aștept cu nerăbdare până în 2019:

  • Căutați soluții comune CI / CD mobile multiplă platformă, atât pentru Android cât și pentru iOS? Este timpul să căutați alte servicii CI / CD specifice mobile, cum ar fi Travis CI, Nevercode, Bitrise, Circle CI etc., indiferent de infrastructura proiectului dvs. Sau gestionați infrastructura mobilă internă folosind Jenkins, TeamCity etc dacă aveți resurse dedicate cu abilități.
  • Căutați soluția iOS? Așteptați până la WWDC ce oferă Apple + BuddyBuild înainte de a vă deplasa la orice alte servicii.
  • Utilizatorii Xcode Server existenți pot continua folosind așa cum este, până când vom primi noutăți despre viitorul Xcode Server.

2. API-ul App Store Connect

O altă veste de ultimă oră în 2018 a fost anunțul Apple pentru AppStore Connect API. La WWDC 2018, a fost anunțată o API oficială care vorbește atât cu portalul Apple Developer, cât și cu iTunes Connect. Apple a combinat, de asemenea, Portalul pentru dezvoltatori și iTunes Connect și l-a rebranșat ca „App Store Connect”. Există ședințe superbe WWDC cu privire la noutățile din App Store Connect și automatizarea App Store Connect

App Store Connect API este API RESTful standard bazată pe JWT (JSON Web Tokens) pentru autentificare și poate fi accesată de pe toate platformele. Cu API-ul App Store Connect, putem automatiza aproape tot ceea ce se referă la App Store, inclusiv

  • Gestionarea certificatelor, furnizarea profilurilor, gestionarea ID-ului dispozitivului și a ID-ului pachetului
  • Gestionarea utilizatorilor, rolurilor și accesului aplicației din App Store Connect
  • Gestionarea testatorilor și testelor beta și a legăturilor publice
  • Descărcarea rapoartelor financiare și a rapoartelor de vânzări

XCBlog a acoperit API-ul App Store Connect în detalii din postarea anterioară. App Store Connect API va elimina o mulțime de instrumente terțe din procesul CI / CD curent. Nu este de mirare, vor exista sute de instrumente open-source pe piață care utilizează API-ul App Store Connect sub capotă.

Aștept cu nerăbdare până în 2019:

App Store Connect API va elimina o mulțime de instrumente terțe din procesul CI / CD curent. Nu este de mirare, vor exista sute de instrumente open-source pe piață care utilizează API-ul App Store Connect sub capotă. Fiți pregătiți să utilizați aceste instrumente noi strălucitoare sau să scrieți propriul instrument personalizat pentru a se potrivi cu cerințele proiectului dvs. utilizând API-ul App Store Connect.

3. Retragerea Fastlane

Fastlane a fost folosit pentru automatizarea conductelor de implementare iOS pentru multe aplicații iOS și a funcționat bine până acum. Deoarece Apple a îmbunătățit drastic fluxul de lucru al automatizării în Xcode Server și serviciile CI / CD ale unei terțe părți gestionează cea mai mare parte a automatizării de bază, utilizarea instrumentelor Fastlane este redundantă. Apple nu a furnizat niciodată o API pentru conectarea la portalul Apple Developer sau iTunes Connect. Acesta este motivul pentru care cei mai mulți dezvoltatori iOS au ales Fastlane pentru automatizarea conductelor de implementare iOS. Cu toate acestea, odată cu anunțul Apple despre AppStore Connect API, majoritatea instrumentelor Fastlane vor fi redundante și mai devreme sau mai târziu trebuie înlocuite cu instrumente native pentru dezvoltatori Apple. Comunitatea Fastlane devine, de asemenea, liniștită pe Twitter și Github, proiectul de pe Fastlane CI a fost, de asemenea, depășit. Aceasta indică faptul că Fastlane trebuie să fie retras mai devreme sau mai târziu. Fii pregătit pentru instrumentele strălucitoare și API-ul App Store Connect.

Aștept cu nerăbdare până în 2019:

O mulțime de instrumente Fastlane precum scanarea, sala de sport va funcționa bine pentru a construi și testa o aplicație iOS, dar mai devreme sau mai târziu va trebui să adoptați noul flux bazat pe App Store Connect API. Pregătiți-vă pentru dezafectarea instrumentelor Fastlane care nu mai sunt necesare, de exemplu, îmbarcare.

Mai devreme sau mai târziu, trebuie să migrați la noul flux de lucru, așa că ar fi o idee grozavă să începeți pregătirea pentru noi instrumente și să vă retrageți Fastlane și Ruby chesty din proiectele iOS.

4. Îmbunătățirile TestFlight + versiunile în fază

Apple a lansat suportul legăturilor publice TestFlight, unde putem partaja linkul și îi putem determina pe oameni să testeze aplicația beta. Link-urile publice pot fi trimise până la testatori de 10K, dar putem seta limita. Linkurile pot fi dezactivate sau activate oricând pentru a controla testerele de numere. Cele mai multe caracteristici TestFlight, cum ar fi crearea de grupuri, alocarea de compilări pentru grup, gestionarea legăturilor publice, gestionarea testerelor și informațiile de testare pot fi automatizate folosind API-ul App Store Connect. Lansările în fază pentru livrare continuă + Îmbunătățirile TestFlight pot lucra mai bine pentru versiuni neînfricate.

Aștept cu nerăbdare până în 2019:

Începeți să utilizați legăturile publice pentru build-urile TestFlight, dar fiți atenți în timp ce partajați. Există riscul de a scăpa de funcții publicului înainte de a lansa. Începeți să automatizați procesul de gestionare a testerilor, grupați utilizând API-ul App Store Connect. Beneficiați de eliberarea în fază pentru a testa anumite caracteristici în producție fără riscuri.

5. App Store Connect- App iOS

De asemenea, Apple a lansat aplicația iOS „App Store Connect”, astfel încât să putem efectua aproape toate activitățile de pe dispozitivele iOS fără a fi nevoie să accesăm site-ul. În aplicația iOS, putem

  • Consultați Tendințele, vânzările și actualizările, achizițiile în aplicație, pachetele de aplicații
  • Toate aplicațiile noastre și capacitatea de a trece la echipa de dezvoltare.
  • Informații detaliate despre aplicații, eliberați / respingeți aplicațiile, gestionați recenziile utilizatorilor și configurați notificarea

Există multe lucruri despre precomenzi, achiziții în aplicație etc din aplicația iOS.

Aștept cu nerăbdare până în 2019:

Utilizați aplicația iOS pentru a gestiona toate funcțiile App Store Connect de pe mobil.

6. Noul sistem de construire a codurilor Xcode

Sistemul Xcode New Build a fost activat în mod implicit în Xcode 10. Puteți citi aici nota completă de lansare a noului sistem de construire. Am postat detaliile interne ale noului sistem de construire în postarea noastră anterioară pe blog. Noua setare de construire poate fi activată din Xcode Files-> Project / Workpace Settings și putem comuta între moștenire și noul sistem de construire. Pe serverul CI, de la linia de comandă folosind xcodebuild, atunci trebuie să trecem parametrul suplimentar -UseModernBuildSystem = DA va forța și noul sistem de construire. Puteți citi mai multe despre noul sistem de construire Xcode, care poate fi folosit pe XCBlog anterior aici. Folosind sistemul de construire modern, putem îmbunătăți timpul de construire Swift drastic urmând câteva sfaturi de bază menționate aici.

Aștept cu nerăbdare până în 2019:

Sistemul de construire nou Xcode este conceput pentru a găsi problemele care nu pot fi determinate cu fluxul obișnuit. Este posibil să fie nevoie să ne adaptăm aplicațiile iOS pentru a ajuta la construirea sistemului în mod corespunzător. S-ar putea să apară unele eșecuri atunci când noul sistem de construire este activat, ar trebui să le remediem pe cele din nou.

7. Testare bazată pe AI și paralelă

Există multe instrumente de testare mobilă fără cod, bazate pe AI, care apar pe piață, care iau o aplicație iOS, generează scenarii de testare și le execută în cloud. Aceste instrumente raportează, de asemenea, probleme de bază în aplicații fără nicio configurație. În prezent, există câteva instrumente de testare mobilă bazate pe AI / ML disponibile pe piață, de ex. Test.ai pentru testarea mobilă. AI de Applitoolsuses pentru testarea regresiei vizuale. Bitbar a anunțat soluția de testare a aplicațiilor bazată pe AI, cunoscută și sub denumirea de AI Testbot, pentru a testa aplicațiile mobile cu ajutorul Inteligenței artificiale. Aceste instrumente ar putea schimba modul în care se vor desfășura activitățile de evaluare în viitor și modul în care instrumentele bazate pe AI pot fi utilizate pentru a susține eforturile de testare iOS.

De asemenea, Apple îmbunătățește tehnologiile de testare în fiecare an. În 2018, asistența pentru testarea paralelă a fost anunțată la nivelul următor, prin paralelizarea apartamentelor de testare din cadrul unui singur simulator, prin crearea clonelor simulatoarelor. Xcode creează un proces de rulare diferit sub capotă și fiecare proces primește teste specifice. Astfel se reduce dramatic execuția testului. Mai multe despre testarea Xcode paralel aici.

Aștept cu nerăbdare până în 2019:

Utilizați instrumente de testare bazate pe AI pentru testarea aplicațiilor iOS și adoptați suportul de testare paralel pentru XCTest.

8. Modalități ușoare de implementare a fișierelor IPA

În prezent, existau opțiuni limitate pentru a implementa fișierele IPA în App Store Connect. Cele mai frecvente opțiuni sunt codul X local, încărcătorul de aplicații, Fastlane, ITMSTrasporter sau altool. Puteți citi în detalii despre aceste opțiuni în detalii aici. Cu toate acestea, la 2018, am mai obținut câteva opțiuni pentru a implementa fișierele IPA

  • Utilizarea ITMSTrasporter de la Linux Server. Detalii aici
  • Folosind xcodebuild pentru a încărca fișierul IPA direct în App Store. Detalii aici

Acest lucru va permite serverelor CI / CD să încarce fișierele IPA generate în App Store mai lin sau chiar de pe serverele Linux.

Aștept cu nerăbdare până în 2019:

Implementarea aplicațiilor iOS de pe linia de comandă folosind instrumentul xcodebuild utilizând exportOptionsPlist. Încercați să transferați fișiere IPA pe servere linux și folosiți ITMSTransporter pentru a implementa aplicațiile în App Store.

9. CI pentru mobil SDK și biblioteci rapide

Pe măsură ce popularitatea aplicațiilor mobile crește, majoritatea companiilor au nevoie de arhitectură pentru a construi aplicații mobile mai rapid. Prin urmare, pentru a asigura calitatea și reutilizarea codului existent în mai multe aplicații, companiile au început să creeze kituri de dezvoltare software (SDK) reutilizabile și biblioteci, astfel încât codul să poată fi reutilizat cu ușurință în mai multe aplicații. Deoarece codul bibliotecii poate afecta mai mulți clienți, este esențial să vă asigurați că calitatea codului SDK satisface cerințele tuturor clienților. În majoritatea companiilor, există o configurare a infrastructurii CI / CD pentru principalele aplicații, dar niciuna pentru biblioteci și SDK-uri. În realitate, integrarea continuă pentru biblioteci și SDK-uri este foarte importantă, chiar mai importantă decât CI pentru principalele aplicații.

Integrarea continuă pentru SDK-ul mobil poate fi obținută prin diverse servicii CI bazate pe cloud, unul dintre exemplele mele postate pe blogul Nevercode aici, cum se poate face cu Nevercode, dar se poate realiza cu alte servicii CI pe care le utilizați în acest moment.

Aștept cu nerăbdare până în 2019:

Tendința de adăugare a CI pentru SDK-urile și bibliotecile iOS va crește cu siguranță în viitorul apropiat, astfel încât să obțineți tot SDK-ul mobil și bibliotecile pe serverul CI.

10. Acțiuni GitHub

GitHub a lansat serviciul GitHub Action, care poate fi folosit pentru CI / CD al pachetelor Swift din containerele pentru docker bazate pe Linux. Postarea de blog detaliată despre modul de configurare CI / CD cu Github Action pentru pachete Swift aici. Acțiunile Github pot fi considerate drept soluția CI / CD a lui GitHub încorporată în Github. Dezvoltatorii pot crea fluxuri de lucru folosind editorul GUI sau de la cod.

În prezent, acest serviciu este limitat la versiunile bazate pe Linux Docker, dar cine știe că putem obține imaginile macOS pentru a utiliza acțiunile GitHub. Putem aștepta și urmări ce aduce GitHub Actions pentru dezvoltarea iOS în viitorul apropiat.

Aștept cu nerăbdare până în 2019:

Fii atent la foaia de parcurs GitHub Actions pentru iOS CI / CD.

Concluzie

În 2018, s-au întâmplat atât de multe lucruri bune pentru a lansa aplicațiile iOS fără probleme. Păstrând în minte toate aceste știri, putem să ne pregătim pentru anul 2019 și să vedem ce urmează pentru lansarea iOS și procesul CI / CD. Sper că am acoperit cele mai multe povești din 2018, vă rog să-mi spuneți ce credeți și, de asemenea, să-mi faceți ping-uri dacă am pierdut ceva

====================================

Îți place această postare de la XCBlog By XCTEQ? S-ar putea să vă placă, de asemenea, unele dintre proiectele noastre open source pe Github sau Urmați-ne pe Twitter și LinkedIn