IOS-utviklere har vært heldige nok til å nyte og jobbe med den robuste utviklingsplattformen som Apple har levert, først og fremst Xcode. Dette har bidratt til å inspirere de engasjerende og kraftige appene som forbrukerne nyter på App Store i dag. Xcode gir en intuitiv IDE, og som, kombinert med fremkomsten av Swift som et virkelig moderne programmeringsspråk, har gjort programmering på plattformen ren nytelse.
Imidlertid, mens utviklingsaspektet i arbeidsflyten er sammenhengende, bryter arbeidsflyten ned når det gjelder de oppgaver som er involvert i å håndtere kodesignalering og distribusjon av apper. Dette har vært et langvarig problem for plattformen, og mens det har forbedret seg gradvis, er det fortsatt en flaskehals for nesten alle utviklere. Dette har i mange henseender stiftet kontinuerlig levering av apper, det vil si at behovet for manuell bygging og distribusjon av apper daglig internt og eksternt er feilaktig og mektig.
Det er der fastlane kommer inn. Fastlane-pakken med verktøy gjør distribusjon av apper mye lettere, slik at utviklere kan fokusere på sine apper og la verktøyet ta på seg oppgaver som å administrere provisjonsprofiler og sertifikater og bygge, pakke og distribuere apper. En av fastlane's verktøylinjer er en klient-side automatisert kontinuerlig levering nøkkelferdig løsning som iOS utviklere kan utnytte for å sikre at deres apps blir testet og validert kontinuerlig av andre, med minimal menneskelig innblanding.
Fastlane er utviklet av Felix Krause (@krausefx), og består av en åpen kildekode-pakke med verktøy som forener automatiseringen av å bygge og distribuere iOS-apper via kommandolinjen, samt integrere med ulike tredjepartsbiblioteker i tillegg til Apples egne APIer . Som en del av et kultverktøyskjede blant iOS-utviklere, og støttet av Google, vil fastlane spare deg mye tid ved å automatisere mange av de manuelle daglige og ukentlige oppgavene dine.
I denne opplæringen skal vi utforske to svært populære funksjoner i fastlane: kodesignering og pakking / distribusjon av apps.
Denne opplæringen vil introdusere deg til fastlane toolchain og vise deg hvordan du kan utnytte verktøyet for å automatisere og optimalisere iOS-utviklings arbeidsflyten. Du vil lære:
Denne opplæringen forutsetter at du har et arbeidskunnskap om Swift og iOS-utvikling, selv om du ikke vil gjøre noen Swift-koding i denne opplæringen. Du bruker kommandoprompten til å bygge og kjøre fastlane-kommandoer.
Fastlane toolchain er i hovedsak skrevet i Ruby og kobles til Apple Developer Center og iTunes Connect API via romskipet Ruby bibliotek, godkjenning og godkjenning av brukere sikkert. Den opererer rundt etableringen av en konfigurasjonsfil, kalt Fastfile, som du kan tenke på som en oppskriftsliste der du angir handlingene du vil bli utført når du bygger appen din. Disse handlingene er organisert i "baner". For eksempel ville du konfigurere en bane for distribusjon til App Store, og en annen bane for distribusjon til TestFlight. En kjørefelt kan bestå av følgende individuelle handlinger:
Du kan tenke på baner som funksjoner hvilke gruppespørsmål. Du kan til og med ringe baner metoder fra en annen, for videre avkoble og gjenbruk av baner.
Men før vi dykker inn i fastlane-handlingene, må du sette opp miljøet ditt for å bruke fastlane.
Pass på at du har den nyeste versjonen av Xcode installert. Du må også ha Xcode Tools installert på systemet. Du kan sjekke om Xcode Tools er installert ved å skrive inn følgende i terminalen:
xcode-select -p
Hvis du får tilbake hele banen til utviklermappen din, er du klar til å gå. Du bør se noe som følger.
$ /Applications/Xcode.app/Contents/Developer
Ellers, la oss få den nyeste versjonen av Xcode kommandolinjeverktøy ved å skrive følgende, i terminal:
xcode-select - installer
Du bør få en melding som ligner på følgende:
Deretter må du installere Homebrew. Homebrew er en kraftig pakkebehandling som lar deg installere hundrevis av åpne kildeverktøy, fastlane blant dem. For å installere Homebrew, skriv følgende i kommandolinjen:
/ usr / bin / ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/
Når Homebrew er satt opp, kan du installere fastlane ved å skrive inn:
brew cask install fastlane
Merk at hvis du foretrekker å ikke installere Homebrew, kan du installere fastlane direkte i terminalen via rubin, ved å skrive inn følgende:
sudo gem installer fastlane -NV
For å bekrefte at fastlane er installert og klar på systemet, skriv inn følgende kommando i terminalen for å initialisere en ny fastlane konfigurasjonsfil:
fastlane init
Du blir bedt om å angi Apple-IDen din slik at fastlane kan koble seg til iTunes Connect sømløst. Fyll ut eventuelle andre spørsmål og du vil se en ny / Fastlane underkatalog opprettet for deg. Du vil være primært opptatt av / Fastlane / Fastfile konfigurasjonsfil, hvor du vil orkestrere alle dine fastlane handlinger.
Ta en rask titt på filen. Du vil jobbe med det over de neste avsnittene, og begynner med å konfigurere fastlane for å kode signere appene dine.
En av de mest populære funksjonene i fastlane som en verktøylinje, er å kunne kodesignere appene dine automatisk, og unngå å prøve å behandle sertifikater og provisjonsprofiler. Dette kan være mye arbeid, og i tillegg, når du bytter maskiner eller ombord et nytt medarbeider, må du gjøre det igjen. Fastlane tilbyr tre handlinger som hjelper deg med å håndtere kodesigneringen din: cert, sukk og kamp.
cert, mens det er nyttig på egenhånd, fungerer vanligvis sammen med sukk for å fullføre prosessen med å signere appen din, ved å administrere dine sertifikater og provisjonsprofiler henholdsvis. Det oppretter ikke bare sertifikatet for deg, men genererer automatisk en ny privat nøkkel signering forespørsel når det trengs, samt hente og installere sertifikatet i nøkkelringen din, og sørg for at sertifikatet ditt er gyldig hver gang du kjører cert.
sukk oppretter tilsvarende provisjonsprofil for sertifikatet ditt for enten utvikling, Ad Hoc eller App Store. Som cert, sørger sørger for at denne provisjonsprofilen forblir nåværende, hentet og installert i nøkkelringen. Sammen danner disse to kode-signeringsparet for appen din. Men før du lærer å bruke cert og sukk, er det en mer relatert handling jeg vil introdusere: kamp.
match kombinerer de to foregående handlingene, men lar deg dele din kodesigneringsidentitet over hele teamet ditt eller på flere maskiner, sikkert og privat gjennom ditt eget GitHub-lager, og opprett alle nødvendige sertifikater og profiler slik at nye medlemmer kan få disse legitimasjonene ved å bare ringer fastlane-kommandoen kamp
. For mer informasjon om konseptet om kamp, ta kontakt med den nye tilnærmingen til å registrere signeringsveiledningen.
For å starte bruk av cert, kjør følgende kommando:
fastlane cert
På samme måte å kjøre sukk:
fastlane sukk
Hvis du vil se en liste over alternativer cert eller sukk gir, kan du gjøre det med følgende kommandoer:
fastlane action cert ... fastlane action sukk
I tillegg til å kjøre disse kommandoene ad hoc, kan du inkludere en eller begge handlingene som en del av den automatiske arbeidsflyten, i Fastfile-konfigurasjonsfilen jeg tidligere nevnte:
bane: TestApp gjør cert # eller aliaset får_certificates sukk # eller aliaset får_provisjonerende_profile ende
Du kan deretter kjøre hele banen ved å utstede følgende kommando:
fastlane TestApp
Med to enkle linjer drar du nå av å ha sertifikater og provisjonsprofiler opprettet for deg og vedlikeholdes automatisk. Deretter vil du dykke inn i hvordan fastlane kan bidra til å pakke og distribuere appene dine.
De to neste handlingene du vil lære om, er treningsstudio og levering, som du vil utnytte til å bygge, pakke og distribuere appen din til TestFlight eller App Store. treningsstudio bygger og pakker appen din via en enkelt kommandolinje, og genererer en signert ipa-fil for deg.
Ved å automatisere dette som en del av Fastfile, kan du utløse bygg og emballasje gjennom en kontinuerlig integrasjons arbeidsflyt og ha den nyeste versjonen av appen din i brukernes hender daglig eller hver time. For å pakke appen din gjennom fastlane, kan du bare kjøre:
fastlane gym
For å spesifisere et bestemt arbeidsområde og skjema, kan du legge til følgende valgfrie parametere:
fastlane gym --workspace "YourApp.xcworkspace" --scheme "AppSchemeName"
Akkurat som Fastfile, fastlane gir en praktisk konfigurasjonsfil kalt a Gymfile hvor du kan lagre alle dine byggespesifikke kommandoer, for eksempel arbeidsområdet ditt, ordninger og mer, slik at du må skrive det ut hver gang eller eksponere det i din Fastfile konfigurasjonsfil. Å opprette en ny Gymfile, bare skriv inn følgende:
fastlane gym init
Du kan deretter redigere den filen og angi konfigurasjonsparametrene som er nødvendige for prosjektet ditt.
Neste opp, overtar tar over hvor treningsstudio sluttet, ved å distribuere din .ipa fil uten at du må gå gjennom Xcode. Som motstykke til treningsstudio, leverer, er ikke bare i stand til å levere din .ipa binær fil, men laster også opp skjermbilder og metadata til iTunes Connect for deg, så vel som å sende appen din til App Store.
Handlingen kan også laste ned dine eksisterende skjermbilder og metadata fra iTunes Connect. Den enkleste handlingskommandoen er å ringe:
fastlane leverer init
Sluttresultatet er en metadata og skjermbilder mappe sammen med konfigurasjonsfilen Deliverfile, som ligner på Gymfile og Fastfile.
Du kan deretter endre innholdet i disse undermappene for å endre appens metadata. Hvis du vil laste opp metadataene dine, kjører du:
fastlane levere
For å sende inn appen din til vurdering, legg til følgende parametere:
fastlane leverer --ipa "App.ipa" --submit_for_review
For å laste ned metadata eller skjermbilder legger du til følgende parametere:
fastlane leverer download_metadata ... fastlane leverer download_screenshots
Du kan endre skjermbilder i / skjermbilder undermappe, men fastlane gir en annen handling som kan automatisere prosessen med å generere skjermbilder for deg. Selv om skjermbilder er utenfor rammen av denne artikkelen, kan du lære om det i en fremtidig fastlane artikkel.
Som med forrige sett med handlinger, kan du enten kjøre treningsstudio og levere på egen hånd eller inkludere den som en del av automatiserings arbeidsflyten, innen Fastfile:
bane: TestApp gjør cert sigh gym (skjema: "AppSchemeName", arbeidsområde: "YourApp.xcworkspace") # alias for "build_ios_app" slack end
Ved å muliggjøre kontinuerlig levering gjennom automatisering, tar fastlane byrden av arbeidskraft fra IOS-utviklere med en klikk-nøkkelbasert løsning for bygging, pakking, distribusjon, kodesignal, skjermbildegenerering og mye mer. Denne opplæringen skraper bare overflaten av det som er mulig med fastlane, og i etterfølgende artikler vil vi utforske flere handlinger du kan implementere for å automatisere og optimalisere arbeidsflyten din ytterligere..
Fra å generere lokaliserte skjermbilder til sin dype integrasjon med fremtredende verktøy som Jenkins CI, Git, Crashlytics, HockeyApp og Slack, er fastlane like viktig som CocoaPods for din utviklings iOS-verktøykasse. Den har et robust fellesskap av tredjepartsplugins, og støttes også av Google.
Du kan også lære alt om kunsten til kontinuerlig levering og fastlane i boken Kontinuerlig levering for mobil med fastlane, tilgjengelig fra Packt Publishing.
Og mens du er her, sjekk ut noen av våre andre innlegg på IOS app utvikling!