Fastlane: cos'è, automazione build e pubblicazione

Autore: IT Sectr Pubblicato: 2026-02-13 Tempo di lettura: 10 min

Fastlane è uno strumento di automazione delle build e della pubblicazione di applicazioni mobili per iOS e Android. Fastlane gestisce la firma del codice, la compilazione, l'esecuzione dei test, la creazione di screenshot e il caricamento su App Store Connect e Google Play Console. È lo standard de facto per il CI/CD nello sviluppo mobile.

Punti chiave

  • Fastlane automatizza l'intera pipeline di rilascio mobile: build, test, firma e pubblicazione con un singolo comando
  • Fastfile è un file di configurazione in Ruby che descrive le lanes — scenari di automazione nominati
  • Supporto iOS e Android — Fastlane funziona con Xcode, Gradle, App Store Connect, Google Play, TestFlight e Firebase
  • match e sigh — gestione di certificati e provisioning profiles per lo sviluppo iOS
  • Integrazione CI/CD — Fastlane si integra con GitHub Actions, GitLab CI, Bitrise, Jenkins e CircleCI

Fastlane — cos'è

Fastlane è uno strumento open-source che automatizza le attività di routine dello sviluppo mobile: compilazione dell'applicazione, esecuzione dei test, creazione di screenshot, gestione dei certificati e caricamento dei build su TestFlight, App Store e Google Play. Fastlane è scritto in Ruby e distribuito tramite RubyGems con il comando gem install fastlane.

Fastlane è apparso nel 2015 come strumento per iOS, ma si è rapidamente esteso ad Android. Oggi è un ecosistema di decine di azioni — comandi integrati che possono essere combinati in scenari chiamati lanes. Ogni lane esegue un compito specifico: ad esempio, build_release compila la versione di rilascio e deploy_beta carica il build su TestFlight.

Fastlane è utilizzato da aziende come Uber, Airbnb, Snapchat, Twitter e Shopify. Secondo un sondaggio del 2024, oltre il 60% degli sviluppatori iOS utilizza Fastlane nei propri progetti. Lo strumento supporta sia l'esecuzione locale che l'integrazione con sistemi CI cloud, rendendolo lo standard de facto per il CI/CD mobile.

ruby
# Installazione di Fastlane
sudo gem install fastlane -NV

# Inizializzazione nel progetto
fastlane init

Dopo l'inizializzazione, Fastlane crea una directory fastlane/ con tre file: Fastfile (scenari), Appfile (impostazioni dell'app) e Matchfile (impostazioni dei certificati). Questa struttura rimane la stessa per entrambe le piattaforme — iOS e Android.

Fastfile e lanes

Il file di configurazione principale di Fastlane è Fastfile. Si trova nella directory fastlane/ nella radice del progetto. Fastfile è scritto in Ruby: ogni lane è un blocco nominato con una sequenza di azioni. Una lane può accettare parametri, chiamare altre lane e restituire valori.

ruby
# fastlane/Fastfile — esempio per iOS
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

Ogni lane viene eseguita con il comando fastlane ios beta o fastlane ios release. Fastfile supporta variabili, condizioni, cicli e chiamate a script esterni — è un file Ruby completo. Gli sviluppatori possono riutilizzare il codice tramite private_lane (metodi locali) e import da altri Fastfile.

Fastlane fornisce oltre 200 azioni integrate per la maggior parte delle attività. Se l'azione necessaria non esiste, puoi scriverne una personalizzata in Ruby o chiamare un comando shell con sh("..."). Le azioni possono accettare parametri — impostazioni di build, percorsi, token di accesso — e restituire risultati per l'uso nei passaggi successivi.

Automazione build iOS

Fastlane per iOS risolve tre problemi chiave: gestione di certificati e provisioning profiles, compilazione IPA tramite Xcode e pubblicazione su App Store Connect e TestFlight. Ciascuno di questi compiti è coperto da un'azione separata.

match è un'azione per la gestione dei certificati. Memorizza tutti i certificati e i provisioning profiles in un repository Git crittografato. Ogni sviluppatore e server CI utilizza lo stesso set di file, eliminando conflitti e problemi con certificati scaduti. Match aggiorna automaticamente i profili quando vengono aggiunti nuovi dispositivi.

sigh crea e scarica un provisioning profile tramite l'Apple Developer Portal. Viene utilizzato quando è necessario ottenere rapidamente un profilo per un tipo specifico: development, ad-hoc o appstore.

gym compila l'IPA. Gym racchiude xcodebuild con parametri ottimali, seleziona automaticamente schema, configurazione, opzioni di esportazione e crea un IPA firmato. Esempio: gym(scheme: "MyApp", export_method: "app-store").

pilot gestisce TestFlight. Carica il build, aggiunge tester e tiene traccia dello stato della revisione. deliver gestisce la pubblicazione completa sull'App Store, inclusi metadati, screenshot, prezzi e versioni.

ruby
# Compilazione e pubblicazione di un'app iOS
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

Per lavorare con App Store Connect sono necessari token di accesso. Fastlane supporta due metodi di autenticazione: chiave API App Store Connect (consigliata) e Apple ID con autenticazione a due fattori. Le chiavi API sono più convenienti per il CI/CD poiché non richiedono l'inserimento interattivo della password.

AzioneScopoEquivalente manuale
matchGestione certificati e profiliApple Developer Portal
sighCreazione provisioning profileXcode + Developer Portal
gymCompilazione IPAxcodebuild + xcrun
pilotCaricamento TestFlightXcode Organizer
deliverPubblicazione App StoreApp Store Connect Web
scanEsecuzione test UIxcodebuild test

Automazione build Android

Su Android, Fastlane automatizza la compilazione tramite Gradle, la firma di APK e AAB, il caricamento su Google Play Console e Firebase App Distribution.

gradle è l'azione principale per le build Android. Chiama il wrapper Gradle con le attività necessarie: gradle(task: "assembleRelease") o gradle(task: "bundleRelease") per AAB. È possibile passare flag, variabili d'ambiente e il percorso di gradle.properties.

supply carica APK o AAB su Google Play Console. Supply gestisce versioni, track (internal, alpha, beta, production), note di rilascio, prezzi e distribuzione per paese. Esempio: supply(track: "beta", release_status: "completed").

screengrab crea screenshot per Google Play. Esegue test di strumentazione che catturano screenshot dell'app su diversi dispositivi e lingue. Gli screenshot risultanti vengono caricati tramite supply.

ruby
# Compilazione e pubblicazione di un'app Android
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
AzioneScopoEquivalente manuale
gradleCompilazione con Gradle./gradlew assembleRelease
supplyCaricamento su Google PlayGoogle Play Console Web
screengrabCreazione screenshotScreenshot manuale + ImageMagick
firebase_app_distributionDistribuzione tramite FirebaseFirebase Console Upload

Integrazione CI/CD

Fastlane è progettato per funzionare in pipeline CI/CD. Gestisce correttamente la modalità non interattiva, le variabili d'ambiente e gli artefatti di build. Di seguito sono riportati esempi di integrazione con i sistemi CI più diffusi.

In GitHub Actions, Fastlane viene eseguito come script Ruby. Un flusso di lavoro tipico: installare Ruby e Fastlane, configurare le chiavi (certificati, token API tramite secrets) ed eseguire la lane. iOS richiede un runner macOS; Android funziona su ubuntu-latest.

In GitLab CI, Fastlane viene utilizzato in .gitlab-ci.yml con configurazione simile: installare le dipendenze, eseguire fastlane e passare gli artefatti. GitLab CI supporta runner macOS e Linux.

Bitrise — un CI/CD specializzato per applicazioni mobili — ha il supporto integrato per Fastlane. Bitrise Workflow può chiamare il Fastlane Step o eseguire script personalizzati con fastlane. Bitrise gestisce i certificati tramite il proprio gestore di firma del codice.

ruby
# Fastfile per CI/CD con esecuzione condizionale dei test
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

Un aspetto importante dell'integrazione CI/CD è l'archiviazione dei segreti. Fastlane utilizza il file .env tramite dotenv e variabili d'ambiente. Per iOS, le variabili critiche sono: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Per Android: SUPPLY_JSON_KEY_DATA — il contenuto dell'account di servizio Google Play.

Azioni Fastlane popolari

Fastlane include oltre 200 azioni integrate. Di seguito è riportata una panoramica delle più popolari con piattaforma e descrizione.

AzionePiattaformaDescrizione
gymiOSCompilare IPA con parametri xcodebuild ottimizzati
matchiOSSincronizzare certificati e provisioning profile tramite Git
pilotiOSCaricare build su TestFlight e gestire tester
deliveriOSPubblicare app sull'App Store con metadati
scaniOSEseguire test unitari e UI con generazione di report
gradleAndroidEseguire attività Gradle: assemble, bundle, test
supplyAndroidCaricare APK e AAB su Google Play Console
screengrabAndroidScreenshot automatici per Google Play
firebase_app_distributionAndroidDistribuire build tramite Firebase
snapshotiOSScreenshot automatici su simulatori per App Store
increment_build_numberiOSAuto-incremento del numero di build nel progetto Xcode
appcenter_uploadEntrambeCaricare build su App Center

Per trovare l'azione necessaria, utilizzare il comando fastlane action [nome], che mostra documentazione, parametri ed esempi. L'elenco completo è disponibile localmente: fastlane actions.

Fastlane supporta anche plugin — estensioni della community che aggiungono nuove azioni. I plugin vengono installati tramite fastlane add_plugin [nome] e sono disponibili nel registro RubyGems. Esempi di plugin popolari: fastlane-plugin-versioning (gestione versioni), fastlane-plugin-sentry (caricare simboli di debug su Sentry), fastlane-plugin-teams (notifiche in Microsoft Teams).

Domande frequenti

Cos'è Fastlane e a cosa serve?

Fastlane è uno strumento per automatizzare la compilazione e la pubblicazione di applicazioni mobili. Sostituisce le operazioni manuali — compilazione, firma del codice, caricamento negli store — con un singolo comando. Fastlane riduce i tempi di rilascio da ore a minuti ed elimina gli errori umani durante la pubblicazione.

Posso usare Fastlane solo per Android o solo per iOS?

Sì. Fastlane supporta entrambe le piattaforme indipendentemente. iOS richiede macOS, mentre Android necessita solo di Linux. In un unico Fastfile puoi separare le lanes per piattaforma: platform :ios do ... end e platform :android do ... end.

Come gestisce Fastlane i certificati iOS?

Attraverso l'azione match. Memorizza certificati crittografati e provisioning profile in un repository Git. Ogni sviluppatore clona il repository, match decifra i file utilizzando la password dalla variabile MATCH_PASSWORD e li installa nel portachiavi. Questo risolve il problema "funziona sulla mia macchina".

Fastlane funziona con Firebase App Distribution?

Sì. Fastlane ha un'azione integrata firebase_app_distribution per caricare APK e IPA su Firebase App Distribution. È disponibile anche firebase_app_distribution_add_testers per aggiungere tester. Un'alternativa è l'azione appcenter_upload per App Center.

Come installo Fastlane su un server CI?

Fastlane viene installato tramite RubyGems: gem install fastlane -NV. iOS richiede macOS con Xcode; Android richiede Linux o macOS con JDK e Android SDK. In GitHub Actions è disponibile l'azione ruby/setup-ruby per installare Ruby e Fastlane. Le variabili d'ambiente vengono passate tramite i secrets del sistema CI.

Qual è la differenza tra Fastlane e Bitrise o Jenkins?

Fastlane è una libreria e CLI per automatizzare le attività di build e pubblicazione. Bitrise e Jenkins sono piattaforme CI/CD complete. Fastlane funziona all'interno di esse: Jenkins esegue Fastlane come passaggio della pipeline, Bitrise chiama Fastlane tramite un Step dedicato. Fastlane non sostituisce un sistema CI — lo completa con funzionalità specifiche per il mobile.

Riepilogo

  • Fastlane — strumento open-source per automatizzare build, test e pubblicazione di app mobili per iOS e Android
  • Fastfile — file di configurazione Ruby che descrive le lanes — scenari con sequenze di azioni
  • match + gym + pilot — la pipeline standard per iOS: gestione certificati, compilazione IPA, caricamento TestFlight
  • gradle + supply — la pipeline standard per Android: compilazione con Gradle, caricamento su Google Play Console
  • Integrazione CI/CD — Fastlane si integra con GitHub Actions, GitLab CI, Bitrise, Jenkins e CircleCI tramite variabili d'ambiente
  • 200+ azioni — comandi integrati per firma, compilazione, test, screenshot, pubblicazione e notifiche
  • Plugin — estensioni della community che aggiungono nuove azioni: versionamento, Sentry, notifiche nei messaggeri

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche