Gli sviluppatori iOS hanno avuto la fortuna di godere e lavorare con la solida piattaforma di sviluppo che Apple ha fornito, principalmente Xcode. Ciò ha contribuito a ispirare le app coinvolgenti e potenti che i consumatori apprezzano su App Store oggi. Xcode fornisce un IDE intuitivo e, insieme all'emergere di Swift come un vero linguaggio di programmazione moderno, ha reso la programmazione sulla piattaforma pura godimento.
Tuttavia, mentre l'aspetto dello sviluppo del flusso di lavoro è coesivo, il flusso di lavoro si interrompe quando si tratta delle faccende che riguardano la gestione del codice e la distribuzione di app. Questo è stato un problema di vecchia data per la piattaforma, e mentre è migliorato in modo incrementale, è ancora un collo di bottiglia per quasi tutti gli sviluppatori. Ciò ha per molti aspetti soffocato la fornitura continua di app, ovvero la necessità di creare e distribuire manualmente le app quotidianamente internamente ed esternamente è soggetta a errori e laboriosa.
È qui che Fastlane entra in gioco. La suite fastlane di strumenti semplifica la distribuzione delle app, consentendo agli sviluppatori di concentrarsi sulle loro app e lasciare che gli strumenti assumano compiti come la gestione dei profili di provisioning e dei certificati e la creazione, il packaging e la distribuzione di app. Una delle toolchain di fastlane è una soluzione chiavi in mano automatizzata per la consegna continua che gli sviluppatori di iOS possono sfruttare per garantire che le loro app vengano testate e convalidate continuamente da altri, con un intervento umano minimo.
Sviluppato da Felix Krause (@krausefx), fastlane è costituito da una suite di strumenti open-source che unifica l'automazione della creazione e distribuzione di app iOS tramite la riga di comando, nonché l'integrazione con varie librerie di terze parti oltre alle API di Apple . Come una sorta di toolchain di culto tra gli sviluppatori iOS e supportato da Google, fastlane ti farà risparmiare un sacco di tempo automatizzando molte delle attività manuali giornaliere e settimanali.
In questo tutorial, esploreremo due funzionalità molto popolari di fastlane: la firma del codice e l'imballaggio / distribuzione di app.
Questo tutorial ti introdurrà alla toolchain fastlane e ti mostrerà come sfruttare lo strumento per automatizzare e ottimizzare il tuo workflow di sviluppo iOS. Imparerai:
Questo tutorial presuppone che tu abbia una conoscenza operativa dello sviluppo di Swift e iOS, anche se non eseguirai alcuna codifica Swift in questo tutorial. Utilizzerai il prompt dei comandi per creare ed eseguire comandi fastlane.
La toolchain fastlane è essenzialmente scritta in Ruby e si connette all'Apple Developer Center e all'API di iTunes Connect tramite la libreria spaziale Ruby, autentificando e autorizzando gli utenti in modo sicuro. Funziona attorno alla creazione di un file di configurazione, chiamato Fastfile, che puoi considerare come un file di ricette in cui imposti le azioni che desideri vengano eseguite durante la creazione della tua app. Queste azioni sono organizzate in "corsie". Ad esempio, devi configurare una corsia per la distribuzione su App Store e un'altra corsia per la distribuzione a TestFlight. Una corsia potrebbe essere composta dalle seguenti azioni individuali:
Puoi pensare alle corsie come funzioni che riguardano i gruppi. È anche possibile chiamare i metodi di corsie da un altro, per disaccoppiare e riutilizzare ulteriormente le corsie.
Ma prima di immergerci nelle azioni di fastlane, dovrai impostare il tuo ambiente per usare fastlane.
Assicurati di avere l'ultima versione di Xcode installata. Avrai anche bisogno di avere Xcode Tools installato sul tuo sistema. È possibile verificare se Xcode Tools è installato inserendo quanto segue nel terminale:
xcode-seleziona -p
Se torni indietro del percorso completo alla cartella del tuo sviluppatore, sei pronto per partire. Dovresti vedere qualcosa di simile al seguente.
$ /Applications/Xcode.app/Contents/Developer
Altrimenti, prendiamo l'ultima versione degli strumenti da riga di comando Xcode digitando quanto segue, nel terminale:
xcode-select --install
Dovresti ricevere un prompt simile al seguente:
Successivamente, dovrai installare Homebrew. Homebrew è un potente gestore di pacchetti che ti consente di installare centinaia di strumenti open source, tra cui fastlane. Per installare Homebrew, digitare quanto segue nella riga di comando:
/ usr / bin / ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/
Una volta impostato Homebrew, puoi installare fastlane inserendo:
brew cask install fastlane
Nota che se preferisci non installare Homebrew, puoi installare fastlane direttamente nel terminale tramite Ruby, inserendo quanto segue:
sudo gem installa fastlane -NV
Per confermare fastlane è installato e pronto sul tuo sistema, inserisci il seguente comando nel terminale per inizializzare un nuovo file di configurazione fastlane:
fastlane init
Ti verrà richiesto di inserire il tuo ID Apple in modo che fastlane possa collegarsi a iTunes Connect senza problemi. Compila qualsiasi altra domanda rapida e vedrai una nuova /corsia di sorpasso sottodirectory creata per te. Sarai principalmente interessato al / Fastlane / FastFile file di configurazione, in cui dovrai orchestrare tutte le tue azioni fastlane.
Dai un'occhiata al file. Lavorerai con esso nelle prossime sezioni, iniziando con la configurazione di fastlane per firmare il codice delle tue app.
Una delle funzionalità più popolari di fastlane come toolchain è quella di poter codificare automaticamente le tue app, evitando il fastidio di dover gestire certificati e profili di provisioning. Questo può essere molto lavoro e, inoltre, quando cambi computer o a bordo di un nuovo membro del team, devi fare tutto da capo. Fastlane fornisce tre azioni che ti aiutano a gestire la firma del codice: cert, sigh e match.
cert, anche se utile da solo, di solito lavora in tandem con il sospiro per completare il processo di firma del codice della tua app, gestendo rispettivamente i certificati e i profili di provisioning. Non solo crea il certificato ma genera automaticamente una nuova richiesta di firma della chiave privata quando necessario, oltre a recuperare e installare il certificato nel portachiavi, assicurandosi che il certificato sia valido ogni volta che si esegue il certificato.
sigh crea il profilo di provisioning corrispondente per il certificato per lo sviluppo, Ad Hoc o App Store. Come cert, sigh garantisce che questo profilo di provisioning rimanga aggiornato, recuperato e installato nel portachiavi. Insieme, questi due formano la coppia di firma del codice per la tua app. Ma prima di imparare come usare CERT e SIR, c'è un'altra azione correlata che voglio presentare: match.
match combina le due azioni precedenti ma ti consente di condividere l'identità della firma del codice attraverso il tuo team, o su più macchine, in modo sicuro e privato attraverso il tuo repository GitHub, creando tutti i certificati e i profili necessari in modo che i nuovi membri possano ottenere tali credenziali semplicemente chiamando il comando fastlane incontro
. Per ulteriori informazioni sul concetto di corrispondenza, consultare il nuovo approccio alla guida alla firma del codice.
Per iniziare a utilizzare CERT, eseguire il seguente comando:
fastlane cert
Allo stesso modo, per sospirare:
sospiro fastlane
Se vuoi vedere un elenco di opzioni fornite da cert o sigh, puoi farlo con i seguenti comandi:
fastlane action cert ... sospiro d'azione fastlane
Oltre all'esecuzione di questi comandi ad hoc, è possibile includere una o entrambe le azioni come parte del flusso di lavoro automatizzato, all'interno del file di configurazione Fastfile che ho menzionato in precedenza:
lane: TestApp do cert # o l'alias get_certificos sigh # o l'alias get_provisioning_profile end
È quindi possibile eseguire l'intera corsia inviando il seguente comando:
fastlane TestApp
Con due semplici linee, ora puoi beneficiare di avere i certificati e i profili di provisioning creati per te e gestiti automaticamente. Successivamente, ti immergerai su come fastlane può aiutare a confezionare e distribuire le tue app.
Le prossime due azioni che imparerai a conoscere sono la palestra e le consegne, che potrai sfruttare per creare, impacchettare e distribuire la tua app su TestFlight o sull'App Store. gym crea e confeziona la tua app tramite una singola riga di comando, generando per te un file ipa firmato.
Automatizzando questo come parte del tuo Fastfile, puoi attivare la creazione e l'imballaggio attraverso un flusso di lavoro di integrazione continuo e avere la versione più recente della tua app nelle mani degli utenti ogni giorno o ogni ora. Per impacchettare la tua app tramite fastlane, puoi semplicemente eseguire:
palestra fastlane
Per specificare un particolare spazio di lavoro e uno schema, è possibile aggiungere i seguenti parametri facoltativi:
fastlane gym - workspace "YourApp.xcworkspace" --scheme "AppSchemeName"
Proprio come FastFile, fastlane fornisce un comodo file di configurazione chiamato a Gymfile in cui è possibile memorizzare tutti i comandi specifici della build, ad esempio lo spazio di lavoro, gli schemi e altro, risparmiandoti di doverlo digitare ogni volta o esporlo all'interno del tuo FastFile file di configurazione. Per creare un nuovo Gymfile, inserisci semplicemente quanto segue:
Fastlane Gym Init
È quindi possibile modificare quel file e inserire i parametri di configurazione necessari per il progetto.
Avanti, consegna riprende da dove la palestra è stata interrotta, distribuendo il tuo .ipa file senza dover passare attraverso Xcode. In quanto controparte della palestra, la consegna non è solo in grado di fornire il tuo .ipa file binario ma carica anche screenshot e metadati su iTunes Connect per te e invia la tua app all'App Store.
L'azione può anche scaricare gli screenshot e i metadati esistenti da iTunes Connect. Il comando di azione più semplice è chiamare:
fastlane consegnare init
Il risultato finale è una cartella di metadati e screenshot insieme al file di configurazione Deliverfile, che è simile al Gymfile e FastFile.
È quindi possibile modificare il contenuto di tali sottocartelle per modificare i metadati dell'app. Per caricare i tuoi metadati, esegui:
consegna fastlane
Per inviare la tua app per la revisione, aggiungi i seguenti parametri:
fastlane consegna --ipa "App.ipa" --submit_for_review
Per scaricare metadati o screenshot, aggiungi i seguenti parametri, rispettivamente:
fastlane consegna download_metadata ... fastlane consegna download_screenshots
Puoi modificare i tuoi screenshot all'interno di / screenshots sottocartella, ma fastlane fornisce un'altra azione che può automatizzare il processo di generazione di schermate per te. Sebbene gli screenshot non rientrino nell'ambito di questo articolo, puoi informarti in merito a un futuro articolo di fastlane.
Come con la precedente serie di azioni, puoi eseguire la palestra e consegnarla da solo o includerla come parte del flusso di lavoro dell'automazione, FastFile:
lane: TestApp do cert sigh gym (schema: "AppSchemeName", workspace: "YourApp.xcworkspace") # alias per "build_ios_app"
Consentendo la distribuzione continua tramite l'automazione, fastlane toglie il carico di lavoro agli sviluppatori iOS con una soluzione chiavi in mano con un solo clic per la creazione, l'imballaggio, la distribuzione, la firma di codici, la generazione di schermate e molto altro. Questo tutorial non fa altro che scalfire la superficie di ciò che è possibile con fastlane, e negli articoli successivi esploreremo più azioni che puoi implementare per automatizzare ulteriormente e ottimizzare il tuo flusso di lavoro.
Dalla generazione di screenshot localizzati alla sua profonda integrazione con strumenti di spicco come Jenkins CI, Git, Crashlytics, HockeyApp e Slack, fastlane è essenziale quanto CocoaPods per il tuo toolkit iOS di sviluppo. Ha una solida community di plug-in di terze parti ed è anche supportato da Google.
Puoi anche imparare tutto sull'arte di consegna continua e fastlane nel mio libro Consegna continua per dispositivi mobili con fastlane, disponibile da Packt Publishing.
E mentre sei qui, dai uno sguardo ad alcuni dei nostri altri post sullo sviluppo di app per iOS!