Ruby nello sviluppo mobile: Fastlane, CI/CD e automazione

Autore: IT Sectr Pubblicato: 2026-02-11 Tempo di lettura: 8 min

Ruby è un linguaggio dinamico interpretato con sintassi elegante, noto per il framework Ruby on Rails. Nello sviluppo mobile, Ruby viene utilizzato principalmente attraverso Fastlane — lo strumento standard per automatizzare build, test e distribuzione di applicazioni iOS e Android. Secondo la documentazione ufficiale di Fastlane, lo strumento è utilizzato in oltre 100.000 progetti in tutto il mondo.

Punti chiave

  • Ruby — un linguaggio dinamico utilizzato nello sviluppo mobile tramite Fastlane per l'automazione delle build
  • Fastlane — lo standard de facto per CI/CD nello sviluppo iOS e Android, scritto in Ruby
  • Fastfile — un file di configurazione che utilizza un DSL simile a Ruby che descrive il processo di build
  • Match e Deliver — azioni Fastlane per la gestione dei certificati e la pubblicazione sull'App Store
  • Ruby Gems — un gestore di pacchetti che consente di estendere Fastlane con plugin

Cos'è Ruby?

Ruby è un linguaggio dinamico interpretato open source creato da Yukihiro Matsumoto nel 1995. Il principio fondamentale di Ruby è la "semplicità ottimale" (principio del minimo stupore). Il linguaggio è noto per i blocchi (closure), l'approccio puramente orientato agli oggetti (tutto è un oggetto, inclusi i numeri) e un potente sistema di metaprogrammazione.

Ruby funziona sull'interprete YARV (Yet Another Ruby VM) con compilazione JIT dalla versione 3.1. La versione attuale Ruby 3.4 (2025) include decoratori, un parser Prism migliorato e supporto sperimentale ai tipi tramite RBS. RubyGems — il gestore di pacchetti — contiene oltre 200.000 gemme.

Ruby on Rails è il framework web più famoso costruito con Ruby, ma nello sviluppo mobile Ruby viene utilizzato diversamente. La sua nicchia principale è Fastlane: un ecosistema di script Ruby e gemme per automatizzare tutte le fasi del ciclo di vita di un'app mobile — dalla firma del codice alla pubblicazione negli store.

Basi della sintassi Ruby per Fastlane

Lavorare con Fastlane richiede solo una conoscenza di base di Ruby: metodi, blocchi do-end, simboli (:symbol) e sintassi degli hash { key: value }. A differenza di Python, Ruby usa end per chiudere i blocchi invece dell'indentazione. I metodi possono essere chiamati senza parentesi — questo viene utilizzato attivamente nel DSL di Fastlane.

ruby
# Sintassi Ruby di base utilizzata in Fastlane
def download_assets(version, platform: "ios")
  paths = {
    ios: "ios/Assets.car",
    android: "android/app/src/main/assets"
  }
  url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
  puts "Downloading from: #{url}"

  unless File.exist?("temp/assets")
    Dir.mkdir("temp/assets")
  end
  result = system("curl -o temp/assets.zip #{url}")
  raise "Download failed" unless result
end

download_assets("1.2.3", platform: "android")

Nell'esempio, il metodo download_assets accetta un argomento version e un parametro nominato opzionale platform (default "ios"). L'interpolazione di stringhe con #{...} incorpora i valori direttamente nelle stringhe. unless è l'opposto di if — esegue il codice quando la condizione è falsa.

Fastlane: automazione build mobile con Ruby

Fastlane è uno strumento open source scritto in Ruby. Installato tramite gem install fastlane, fornisce un insieme di comandi per automatizzare le attività più routinarie dello sviluppatore mobile: creare screenshot, firmare codice, pubblicare su TestFlight e Google Play Console.

Fastlane è composto da strumenti: sigh (gestione certificati), match (sincronizzazione certificati in team), gym (build iOS), gradle (build Android), deliver (pubblicazione iOS), supply (pubblicazione Android), snapshot (screenshot), scan (test). Tutti gli strumenti sono accessibili da un unico Fastfile.

Nei grandi progetti, Fastlane gestisce oltre 50 azioni in una singola pipeline: incremento versione, download asset da CDN, build, firma, upload su App Store Connect, invio notifiche Slack. L'intera pipeline viene eseguita con un solo comando: fastlane release.

Fastfile: configurazione della pipeline di build

Fastfile è un file DSL simile a Ruby che descrive una sequenza di azioni (lane). Ogni lane è un'attività separata: beta (build di test), release, screenshots. Le lane possono chiamare altre lane con parametri passati.

ruby
# Fastfile — configurazione della pipeline di build dell'app iOS
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "Creazione e distribuzione del build TestFlight"
  lane :beta do |options|
    increment_build_number(
      build_number: options[:build]
    )
    match(type: :appstore)
    gym(
      scheme: "MyApp",
      export_method: "app-store",
      configuration: "Release"
    )
    upload_to_testflight(
      app_identifier: "com.example.myapp"
    )
    slack(
      message: "Build #{options[:build]} caricato su TestFlight"
    )
  end
end

La lane beta esegue sequenzialmente: incrementare il numero di build (increment_build_number), sincronizzare i certificati (match), compilare l'archivio (gym), caricare su TestFlight (upload_to_testflight) e inviare notifica Slack. Il parametro :build viene passato alla lane come argomento nominato.

Configurazione Android in Fastfile

Fastlane supporta entrambe le piattaforme in un unico Fastfile. Per Android, utilizzare una lane all'interno di platform :android con le azioni gradle, supply e google_play_track_version_codes.

ruby
platform :android do
  desc "Creazione dell'APK e pubblicazione su Google Play Internal Testing"
  lane :beta do
    gradle(
      task: "assemble",
      build_type: "Release",
      flavor: "Production"
    )
    supply(
      track: "internal",
      apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
    )
  end
end

Azioni chiave di Fastlane per iOS e Android

Fastlane include oltre 200 azioni integrate. Di seguito le più importanti per lo sviluppo mobile, organizzate per categoria.

AzionePiattaformaScopo
matchiOSSincronizzare certificati e profili di provisioning tramite Git
gymiOSCompilare archivi .app e .ipa
scaniOSEseguire test UI sul simulatore
snapshotiOSGenerazione automatica di screenshot su diversi dispositivi
deliveriOSCaricare build, screenshot e metadati su App Store Connect
pilotiOSGestione TestFlight: caricare build, aggiungere tester
gradleAndroidEseguire attività Gradle: assemble, test, bundle
supplyAndroidCaricare APK/AAB e metadati su Google Play Console
screengrabAndroidScreenshot automatici per Google Play
firebase_app_distributionEntrambeCaricare build su Firebase App Distribution

Match: gestione sicura dei certificati

match è una gemma Fastlane per sincronizzare certificati iOS e profili di provisioning tra sviluppatori. Tutti i segreti sono memorizzati in un repository Git crittografato o S3. Match genera automaticamente i certificati se mancano e li rinnova alla scadenza.

ruby
# Inizializzazione di match per un nuovo progetto
$ fastlane match init

# Creazione e sincronizzazione dei certificati App Store
$ fastlane match appstore

# Creazione di certificati Development per il team
$ fastlane match development

# Rinnovo di tutti i certificati alla scadenza
$ fastlane match --force

Match memorizza le chiavi private con una passphrase nota solo agli sviluppatori. Ogni sviluppatore clona il repository dei certificati ed esegue match per installare i profili correnti. I certificati Apple sono validi per 1 anno; match li rinnova automaticamente.

Integrazione di Fastlane con sistemi CI/CD

Fastlane si integra con qualsiasi piattaforma CI/CD: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins e Xcode Cloud (tramite xcode-build). Fastlane viene eseguito su CI usando fastlane <lane_name> e restituisce un codice di errore se un passo fallisce.

La configurazione per GitHub Actions include l'installazione di Ruby, fastlane e l'esecuzione della lane tramite bundle exec fastlane. Le build iOS richiedono un runner macOS. Le build Android possono usare ubuntu-latest, che è più economico.

yaml
# .github/workflows/deploy.yml — CI/CD con Fastlane
name: Deploy Mobile App
on:
  push:
    branches: [main]

jobs:
  ios-deploy:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.3"
      - run: bundle install
      - run: bundle exec fastlane beta
      - env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

Il workflow viene eseguito al push su main. Il runner macOS esegue bundle exec fastlane beta dal Fastfile. MATCH_PASSWORD viene passata tramite GitHub Secrets per la decrittazione dei certificati. Dopo il completamento della lane, un'azione Slack invia una notifica.

Ruby Gems e plugin Fastlane

RubyGems è il gestore di pacchetti per Ruby. Fastlane viene esteso tramite plugin — gemme che aggiungono nuove azioni. Il plugin fastlane-plugin-versioning gestisce le versioni, fastlane-plugin-firebase_app_distribution carica build su Firebase. Ci sono oltre 500 plugin Fastlane su GitHub.

Il Gemfile nella radice del progetto fissa le versioni di tutte le dipendenze per build riproducibili. bundle install installa le gemme da Gemfile.lock. Le gemme essenziali per lo sviluppo mobile includono: fastlane, cocoapods (dipendenze iOS), xcodeproj (manipolazione .xcodeproj).

ruby
# Gemfile per un progetto mobile
source "https://rubygems.org"

gem "fastlane", "~> 2.220"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Fastlane vs alternative: confronto degli approcci

Fastlane non è l'unico strumento di automazione. Confrontiamolo con le principali alternative in base a criteri importanti per un team mobile.

CriterioFastlane (Ruby)Bitrise (web)Xcode Cloud (Apple)GitHub Actions (YAML)
FlessibilitàMassima (codice)Media (passi)Bassa (limitato)Alta
iOSSupporto completoCompletoCompleto (integrato)Via macOS self-hosted
AndroidSupporto completoCompletoNoCompleto
Certificati (match)IntegratoVia Code SigningAutomaticoVia fastlane
Esecuzione localeNo (solo CI)NoVia act
Plugin500+200+ integrazioniNessuno20.000+ azioni

Fastlane rimane lo strumento più flessibile per pipeline complesse. Bitrise è comodo per team senza uno sviluppatore Ruby. Xcode Cloud funziona per progetti iOS semplici. GitHub Actions è ideale se il team usa già GitHub.

Domande frequenti

Perché usare Ruby nello sviluppo mobile se esistono Kotlin e Swift?

Ruby non viene utilizzato per scrivere applicazioni mobili, ma per automatizzare i processi di build, test e distribuzione tramite Fastlane. Fastlane è lo standard de facto per CI/CD nello sviluppo iOS e Android.

Fastlane funziona solo su macOS?

Fastlane funziona su macOS, Linux e Windows, ma le build iOS richiedono Xcode e macOS. Le build Android possono essere eseguite su qualsiasi piattaforma. Gli sviluppatori usano macOS localmente e su CI — macOS per iOS e Linux per Android.

Devo imparare Ruby per lavorare con Fastlane?

Una conoscenza di base di Ruby è sufficiente per lavorare con Fastlane. Fastlane utilizza un DSL simile a Ruby nel Fastfile. Per le attività tipiche, la conoscenza di gemme, blocchi do-end e sintassi di base è sufficiente. Non è richiesta una conoscenza approfondita di Ruby.

Quali alternative a Fastlane esistono?

Alternative: Gradle per Android (integrato), Xcode Cloud (Apple), Bitrise (interfaccia web), GitHub Actions (YAML). Fastlane rimane lo strumento più flessibile grazie al suo ricco ecosistema di azioni e plugin.

Fastlane è adatto per grandi team?

Sì, Fastlane è utilizzato da grandi aziende. Tutte le azioni e i file di configurazione sono versionati nel repository e match garantisce l'archiviazione sicura dei certificati in un repository o S3.

Riepilogo

  • Ruby — un linguaggio dinamico utilizzato nello sviluppo mobile attraverso l'ecosistema Fastlane per l'automazione delle build
  • Fastlane — lo standard CI/CD per iOS e Android: oltre 200 azioni, oltre 500 plugin, oltre 100.000 progetti
  • Fastfile — un DSL simile a Ruby con lane: beta, release, screenshots per diversi scenari di build
  • Match risolve il problema di sincronizzazione dei certificati iOS e dei profili di provisioning tra sviluppatori
  • Deliver e Supply — azioni per pubblicare su App Store e Google Play con metadati e screenshot
  • Integrazione CI/CD — Fastlane funziona con GitHub Actions, GitLab CI, CircleCI e Bitrise
  • Flessibilità — Fastlane supera Bitrise e Xcode Cloud grazie a una pipeline programmabile in Ruby

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