Bitrise è una piattaforma CI/CD specializzata per lo sviluppo mobile, costruita attorno a Steps pronti — moduli preconfigurati per compilare, firmare e pubblicare applicazioni iOS e Android. Secondo Bitrise, 2024, la piattaforma supporta oltre 400 Steps pronti e si integra con Xcode, Gradle, Fastlane, Firebase e App Store Connect.
Punti chiave
Bitrise è una piattaforma CI/CD lanciata nel 2016 e completamente focalizzata sullo sviluppo mobile. A differenza di soluzioni universali come GitHub Actions e GitLab CI, Bitrise è stata progettata originariamente per automatizzare la compilazione di app iOS e Android. La piattaforma funziona nel cloud e fornisce i propri runner ospitati con macOS e Linux. Bitrise supporta tutti gli stack mobili più diffusi: Swift, Kotlin, Flutter, React Native, Cordova e Xamarin.
Il principale vantaggio di Bitrise sono i modelli di Step preconfigurati per le attività tipiche dello sviluppo mobile: build Xcode, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. La configurazione della pipeline richiede minuti tramite l'editor visivo e la configurazione YAML viene generata automaticamente nel file bitrise.yml. Per gli utenti esperti, è disponibile un editor YAML con completamento automatico.
L'architettura di Bitrise si basa su due concetti chiave: Workflow e Step. Un Workflow è una sequenza di Steps che definisce la pipeline. Ogni progetto può avere più Workflow: primary (build principale), deploy (pubblicazione), test (solo test). Un Workflow viene attivato da eventi: push, PR, tag o secondo una pianificazione. I Workflow possono anche essere avviati manualmente dall'interfaccia web, utile per build ad-hoc.
Uno Step è un modulo atomico che esegue un singolo compito. Gli Steps possono essere trascinati nell'editor visivo, cambiando ordine e configurazione. Bitrise fornisce Steps per Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution e notifiche Slack. Anche la comunità crea Steps — sono disponibili tramite Step Library. Ogni Step ha parametri di input obbligatori e opzionali, oltre a variabili di output che possono essere utilizzate dagli Steps successivi.
Bitrise supporta il concetto di Pipeline — la combinazione di più Workflow in un'unica pipeline. Una Pipeline può includere build principali per tutte le piattaforme e workflow separati per distribuzione e test. Ciò consente di creare processi CI/CD complessi in cui una build ne attiva un'altra. Gli Stack di Bitrise determinano il software preinstallato sul runner: Xcode, Android SDK, Flutter, Node.js e altri strumenti.
Bitrise si integra con GitHub, GitLab, Bitbucket e Azure DevOps. Quando si collega un repository, Bitrise rileva automaticamente il tipo di progetto (iOS, Android, Flutter) e suggerisce un modello di Workflow. Per i repository privati, Bitrise richiede l'accesso tramite OAuth o chiave SSH. Più repository possono essere collegati a una singola applicazione.
Dopo la connessione, Bitrise crea un webhook nel repository per avviare automaticamente le build su push e PR. Ogni build riceve un numero univoco, log e artefatti. L'interfaccia consente di sfogliare la cronologia delle build, confrontare le modifiche e riavviare i build falliti. Bitrise supporta anche build pianificate per build notturne regolari e l'integrazione con Jira per il tracciamento dei commit.
Il code signing per iOS è uno dei compiti CI/CD più complessi e Bitrise lo risolve nel modo più semplice possibile. La piattaforma memorizza certificati e profili di provisioning in forma crittografata, li installa automaticamente nel keychain appropriato prima della build ed esporta l'IPA firmato. Lo Step Certificate and Profile Installer scarica i file dall'archivio Bitrise e configura Xcode. Sono supportati i tipi di certificato Development, AdHoc, AppStore ed Enterprise.
Per la pubblicazione su App Store Connect, Bitrise fornisce Steps per il caricamento dell'IPA tramite Xcode Archive & Export. La pubblicazione su Google Play utilizza Gradle Runner con firma tramite Keystore, dopodiché l'APK/AAB viene caricato su Google Play Console tramite Google Play Deploy Step. Per Firebase App Distribution, è sufficiente specificare il Firebase Token e il gruppo di tester. Bitrise automatizza l'aggiornamento del numero di versione e del numero di build prima di ogni pubblicazione.
I certificati vengono caricati nella sezione Code Signing dell'interfaccia web: P12 con chiave privata, profilo di provisioning (.mobileprovision), Keystore (.jks/.keystore) per Android. Bitrise installa automaticamente i certificati iOS nel keychain a ogni esecuzione del Workflow ed esporta l'applicazione firmata. Per Android, basta caricare il file Keystore — Bitrise lo passa a Gradle tramite variabili d'ambiente durante la build.
Esaminiamo un Workflow per un'applicazione Flutter che compila e pubblica build per iOS e Android. Bitrise rileva automaticamente un progetto Flutter e suggerisce gli Steps appropriati. Il Workflow include installazione di Flutter, caching pub-cache, compilazione, test e distribuzione. Per le build iOS, sono inoltre necessari certificati di code signing, che Bitrise carica automaticamente.
Durante la compilazione di app Flutter, Bitrise supporta una configurazione separata per ogni piattaforma. Le build Android vengono eseguite su un runner Linux con Flutter SDK, iOS su un runner macOS. Un Workflow può includere Steps condizionali: build_android e build_ios, che vengono eseguiti solo sulle rispettive piattaforme. Per i progetti React Native, Bitrise offre un set simile di Steps con npm/nvm e Metro bundler.
format_version: 13
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: main
workflow: primary
workflows:
primary:
steps:
- activate-ssh-key@4:
run_if: true
- git-clone@8: {}
- flutter-installer@0:
inputs:
- version: 3.24.0
- flutter-build@0:
inputs:
- platform: both
- ios_output_type: archive
- deploy-to-bitrise-io@2: {}
Dopo la build, è possibile aggiungere uno Step Firebase App Distribution per iOS e Android. Lo Step accetta firebase_token, app_id e testers_group. Bitrise sostituisce i valori da Secrets — l'archiviazione sicura dei token garantisce che non finiscano nei log.
- firebase-app-distribution@1:
inputs:
- firebase_token: $FIREBASE_TOKEN
- app_id: $FIREBASE_IOS_APP_ID
- testers_group: qa-team
- release_notes: |
Build $BITRISE_BUILD_NUMBER
La corretta gestione dei dati riservati è il fondamento della sicurezza dei processi CI/CD. I Secrets di Bitrise sono crittografati e illeggibili dopo il salvataggio. Quando si crea una nuova applicazione, Bitrise offre di importare secrets da un altro progetto o di impostarli manualmente. Per i team numerosi, è disponibile la funzione Environment Groups — gestione centralizzata di variabili e secrets per un gruppo di applicazioni.
Bitrise fornisce un archivio Secrets integrato per dati riservati: chiavi API, token Firebase, password Keystore, Apple ID. I Secrets vengono definiti come coppie chiave-valore nell'interfaccia web e vengono mascherati nei log di build. Sono disponibili a livello di applicazione e a livello di Workflow. I Secrets non possono essere letti dopo il salvataggio — possono solo essere sovrascritti.
Le Variabili d'Ambiente (senza il flag Secret) vengono utilizzate per la configurazione: versione di Xcode, percorso del progetto, schema di build. Le variabili d'ambiente di Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) forniscono meta-informazioni sulla build. I Secrets vengono crittografati a riposo e decrittografati solo sul runner durante l'esecuzione del Workflow. Per la gestione di gruppo delle variabili, Bitrise supporta Environment Groups — insiemi di variabili applicabili a più applicazioni contemporaneamente.
La gestione dei certificati iOS tramite Bitrise merita un'attenzione particolare. La piattaforma installa automaticamente P12 e profili di provisioning nel keychain di sistema prima della build. Per Android, viene utilizzato il file Keystore, caricato nella sezione Code Signing. Ogni file di certificato viene archiviato crittografato e decrittografato solo durante la build.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise offre vari stack per la compilazione — immagini preinstallate con strumenti e SDK. Gli stack disponibili includono Xcode (versioni 14, 15, 16 con iOS SDK 17, 18), Android (con diverse versioni di SDK e NDK), Flutter, React Native e Kotlin Multiplatform. Ogni stack ha una descrizione degli strumenti e delle versioni preinstallati.
La scelta dello stack influisce sul tempo di compilazione e sulla compatibilità con il progetto. Bitrise aggiorna regolarmente gli stack, aggiungendo nuove versioni degli strumenti. È possibile fissare una versione specifica dello stack in bitrise.yml per evitare modifiche impreviste durante l'aggiornamento della piattaforma. Per le dipendenze personalizzate, viene utilizzato lo Script Step per installare i pacchetti necessari prima della build principale. Bitrise supporta anche immagini Docker per stack Linux, consentendo ambienti personalizzati per le build Android.
Domande frequenti
Bitrise offre un piano gratuito con 90 minuti di build al mese e un build concorrente. Developer ($79/mese) include 3000 minuti, fino a 5 build concorrenti e tutte le integrazioni. Enterprise — prezzi personalizzati.
Bitrise supporta iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic e Xamarin. Ogni piattaforma ha strumenti preinstallati e modelli di Workflow.
Bitrise fornisce runner macOS per le build iOS senza configurazione aggiuntiva. La piattaforma gestisce l'infrastruttura macOS automaticamente — il runner viene selezionato in base allo stack dell'applicazione.
Bitrise memorizza i certificati in forma crittografata e li installa automaticamente nel keychain prima della build tramite lo Step Certificate and Profile Installer. Per Android in modo simile — il Keystore viene caricato e utilizzato da Gradle durante la firma.
Sì, Bitrise supporta Steps personalizzati tramite Script Step (script bash) e Step Libraries personalizzate da GitHub. Puoi anche creare il tuo Step seguendo la documentazione di Bitrise e pubblicarlo nella Step Library.
Riepilogo
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.
Leggi anche