Il miglior CI/CD per un'app iOS dipende da tre cose: cosa l'app è costruita con, dove i tuoi code già vivono, e quanto di firma e manutenzione Mac vuoi gestire. Xcode Cloud si adatta a team Apple-only nativi, Bitrise, Codemagic e Appcircle si adattano a team mobili dedicati, GitHub Azioni, GitLab CI, CircleCI e Azure DevOps si adattano a team che vogliono un CI per tutto, e Capgo Build si adatta a Capacitor team che vogliono costruire iOS senza runner macOS. Questa comparazione copre ogni una con i fatti che contano per iOS nel 2026.
Cosa è cambiato per il CI/CD iOS nel 2026
- Xcode 26 è obbligatorio Da aprile 28, 2026, App Store Connect rifiuta le pubblicazioni non costruite con Xcode 26 e l'iOS 26 SDK. Qualsiasi piattaforma scelta deve offrire immagini Xcode 26, e i Mac auto-hosted devono essere aggiornati. Dettagli in La richiesta di Xcode 26 di Apple.
- Apple Silicon è la scelta predefinita. Il runner macOS ospitato su GitHub, GitLab, CircleCI, Bitrise e Codemagic esegue su Apple Silicon. Le immagini Intel stanno per essere ritirate.
- Sono rimaste solo due piattaforme gestite. Microsoft App Center è stato ritirato il 31 marzo 2025. Ionic Appflow ha interrotto le nuove vendite nel febbraio 2025 e terminerà il servizio il 31 dicembre 2027. Gli squadre su entrambi hanno bisogno di una nuova casa.
- App Store Connect API chiavi sostituiscono gli accessi con Apple ID. Tutte le piattaforme serie ora si autenticano con una
.p8API chiave, che evita i prompt di due fattori che utilizzavano a rallentare i job CI.
Cosa confrontare
Un flusso iOS ha più parti in movimento di un web. Queste sono le domande che separano le piattaforme:
- Chi fornisce il Mac? Hosted, self-hosted, o astratto.
- Come viene gestito il firmatario? Segreti manuali e script di keychain, o certificati e profili gestiti.
- Può caricare su TestFlight e inviare la versione per la revisione. senza strumenti aggiuntivi?
- Come arrivano velocemente le nuove versioni di Xcode?
- Per minuto, crediti, concorrenza o ore incluse. Per minuto, crediti, concorrenza, o ore incluse.
- La maggior parte degli app vengono rilasciati entrambi. Matrice di funzionalità
Piattaforma
| Platform | Mac fornito | Gestione firma | Incarico di caricamento di TestFlight | IOS | Modello di prezzo |
|---|---|---|---|---|---|
| GitHub Azioni | Runner arm64 ospitati (macos-15, macos-26) o self-hostati |
No, segreti più script o fastlane | Via fastlane o altool |
Sì | Per minuto, macOS supera Linux; gratuito per repository pubblici |
| GitLab CI | Runner macOS ospitati (beta, Premium/Ultimate) o gestiti autonomamente | No, ma un'integrazione App Store Connect memorizza la chiave API | Via fastlane | Sì | Minuti di calcolo per livello |
| Bitrise | Stack di Apple Silicon ospitati | Sì, gestione certificato e profilo | Passaggi integrati | Sì | Crediti per minuto di build, piani di livello |
| Codemagic | Mac mini Apple Silicon ospitati | Sì, recupera o crea profili tramite la chiave API | Pubblicazione integrata | Sì | Pagamento a minuto o piani annuali fissa |
| Appcircle | Server Appcircle ospitato da un fornitore o self-hosted. | Appcircle Server ospitato o self-hosted | Sì, archivio identità di firma | Sì | modulo di pubblicazione integrato |
| Xcode Cloud | Apple-gestito | Sì, automatico | Integrato | No | 25 ore al mese incluse con l'abbonamento, più a pagamento |
| CircleCI | Risorse Apple Silicon ospitate | No, segreti più fastlane | Via fastlane | Sì | Crediti per minuto per classe di risorsa |
| Azure DevOps | macOS agenti ospitati su Microsoft o self-hosted | Parziale, le attività installano certificati e profili | Task di estensione di App Store | Sì | Job in parallelo |
| Capgo Costruzione | Capgo-gestiti, chiamati da qualsiasi CI | Sì, configurazione guidata con build init |
Integrato, più invio per la revisione | Sì | Minuti di costruzione, vedi Pricing |
Notes on the matrix: “managed signing” means the platform stores or generates certificates and profiles for you, not just secret storage. Capgo Build only builds Capacitor apps; the others build native Swift projects too.
Piattaforma per piattaforma
GitHub Azioni
Il default per molte squadre perché il workflow vive accanto a code. GitHub ospita runner macOS Apple Silicon (macos-latest con currentemente punti su macOS 26 (arm64) con diverse versioni di Xcode installate, e seleziona una con xcode-select oppure maxim-lobanov/setup-xcode.
Tutto ciò che è iOS-specifico è tuo: decodifica il .p12 installa profili, aumenta i numeri di build, carica. La maggior parte delle squadre utilizza fastlane per questo. I minuti di macOS sui repository privati vengono fatturati a un tasso molto più alto rispetto ai minuti Linux, quindi eseguire build iOS su ogni richiesta di pull diventa molto costoso.
Ottime per: team che gestiscono GitHub e sono a loro agio con fastlane. Automatico Capacitor build iOS con GitHub Azioni.
CI GitLab
GitLab offre runner macOS ospitati su GitLab.com per i livelli Premium e Ultimate, ancora etichettati come beta, su macchine Apple Silicon (M1 e M2 Pro). Le immagini sono denominate in base all'OS e Xcode, ad esempio macos-26-xcode-26Su GitLab self-managed, si registra i propri Mac.
Le funzionalità di Mobile DevOps di GitLab includono un'integrazione del progetto per App Store Connect che esporre la chiave API ai job, il che rende la configurazione di fastlane più pulita. La firma stessa è ancora i propri script.
Consigliato per: team già su GitLab Premium. Guida: Configura CI/CD in GitLab.
Bitrise
Un CI mobile con una grande libreria di passaggi. Bitrise mantiene le pile macOS su Apple Silicon con ogni versione di Xcode supportata e pubblica di solito nuove pile Xcode poco dopo che Apple le rilascia. La firma Code può essere gestita tramite l'integrazione App Store Connect API che scarica o genera certificati e profili durante la compilazione. I passaggi coprono l'upload su TestFlight, la distribuzione sull'App Store e molti strumenti di testing. Ha anche funzionalità di gestione delle release per i roll-out a fasi.
Il prezzo è basato su crediti, quindi le compilazioni iOS su macchine più grandi consumano i crediti più velocemente. È uno degli opzioni più costosi per piccoli team e uno dei più completi per grandi team mobili.
Codemagic
Avviato con Flutter e ora copre iOS nativo, Android, React Native, Ionic e Capacitor. Le compilazioni si eseguono su istanze Mac mini Apple Silicon. La configurazione vive in codemagic.yaml o un editor di interfaccia utente. La firma automatica code utilizza la tua chiave API di App Store Connect per estrarre o creare il certificato e il profilo giusti, il che elimina la maggior parte dello scripting della chiave di accesso. La pubblicazione su TestFlight e la revisione di App Store è integrata.
La tariffa è o pay-as-you-go per minuto di build o un piano annuale fissato, con un'allocazione mensile gratuita per conti personali. Vedi Capacitor build di iOS con Codemagic.
Appcircle
Una piattaforma CI/CD mobile che raggruppa le build, un archivio di identità di firma, una distribuzione per tester, un negozio di app aziendale e la pubblicazione in negozio. La sua differenza rispetto agli altri è la scelta di distribuzione: puoi utilizzare il servizio cloud o eseguire Appcircle Server sul tuo proprio infrastruttura, il che conta per le industrie regolamentate che non possono inviare code o chiavi di firma in un cloud condiviso. I framework ibridi sono costruiti attraverso passaggi di workflow e script personalizzati.
Xcode Cloud
La propria piattaforma CI di Apple, configurata da Xcode o App Store Connect. La firma è automatica perché si esegue all'interno del sistema di account di Apple, e la distribuzione su TestFlight è un semplice segno di spunta. La partecipazione al programma di sviluppatori Apple include 25 ore di calcolo al mese, e più ore sono vendute come abbonamento. Si connette a GitHub, GitLab e Bitbucket, compresi gli esempi self-managed.
Limiti: costruisce solo piattaforme Apple, quindi Android richiede un'altra piattaforma CI. La personalizzazione va in ci_scripts hook di shell. Per un'app Capacitor installi Node in ci_post_clone.sh, costruisci la layer web e esegui cap sync. Vedi Come costruire un'app Capacitor in Xcode Cloud.
CircleCI
Un CI generico con esecutori macOS su risorse Apple Silicon e immagini Xcode. La configurazione è in YAML con orbhi riutilizzabili. La firma e le upload sono DIY, tipicamente con fastlane e match. La fatturazione utilizza crediti, e le risorse macOS consumano più crediti al minuto rispetto a quelle Linux. Una scelta solida se CircleCI già gestisce il backend.
Azure DevOps
Azure Pipelines fornisce agenti macOS ospitati da Microsoft (macOS-latest) e supporta agenti Mac auto-hosted. Ha compiti integrati che le squadre iOS utilizzano effettivamente: InstallAppleCertificate@2 e InstallAppleProvisioningProfile@1 gestisci le chiavi della chiave e le impostazioni del profilo da file sicuri. Xcode@5 archivia e esporta, e l'estensione App Store AppStoreRelease@1 carica i compiti su TestFlight. La tariffazione è per job paralleli piuttosto che per minuto. Si adatta alle organizzazioni Microsoft-centriche, soprattutto quelle che migrano da App Center.
Capgo Build
Capgo Build non è un CI. È un servizio di costruzione che il tuo CI esistente chiama. Un lavoro di Linux (GitHub Actions, GitLab, Bitbucket, Gitea, Azure DevOps, qualsiasi cosa) esegue la costruzione web e cap sync ios, quindi:
bunx @capgo/cli@latest build request com.example.app --platform ios --build-mode release
Capgo compila e firma sui suoi Mac, invia i log di flusso al lavoro, incrementa il numero di costruzione da App Store Connect e carica su TestFlight. --submit-to-store-review invia il pacchetto all'App Review. La configurazione di firma è guidata da bunx @capgo/cli@latest build init --platform ios, che crea il certificato e il profilo. I credenziali di firma rimangono nelle tue segrete CI e vengono inviate per costruzione anziché essere memorizzate da Capgo.
Limiti da sapere: costruisce solo app Capacitor, e un'unica costruzione ha un limite di 10 minuti. Il suo vantaggio principale è che nessun lavoro nella tua pipeline necessita di un esecutore macOS, e lo stesso CLI invia aggiornamenti live per modifiche solo web, tanti rilasci saltano la costruzione nativa interamente.
Argent Cloud
Argent Cloud di Software Mansion non è un servizio di costruzione neanche lui. Copre lo step dopo la costruzione: l'esecuzione dell'applicazione sui simulatori iOS. Otteni hardware Apple dedicato con simulatori iOS isolati e preconfigurati e raggiungi loro attraverso la rete. Ciò consente a un lavoro CI di Linux, o un agente di codifica AI che esegue su Linux, di guidare un simulatore iOS senza che il tuo team debba costruire e mantenere la propria flotta di Mac.
Lavora con Maestro, Appium e script personalizzati, e con Argento, Software Mansion’s MCP toolkit that lets agents such as Claude Code, Cursor, and Codex tap through the app, read logs and network requests, and profile it. Pricing is flat: each Runner gives up to 6 parallel simulators on hardware that is not shared with other customers, starting at $299 per month with unlimited simulator time.
Argent Cloud complements a build platform rather than replacing one: keep any of the services above for compiling, signing, and TestFlight uploads, and point your UI tests and agents at Argent Cloud’s simulators. Its main advantage is that long test suites and agent sessions no longer consume per-minute macOS time.
Ionic Appflow e App Center
Both still show up in search results. App Center is gone. Appflow works for existing customers until December 31, 2027 and accepts no new customers. If you are on either, plan the move now. Migration guides: Migrazione di App Center and Alternativa a Appflow.
Situazione
| La tua situazione | Buona scelta |
|---|---|
| Swift nativo, piattaforme Apple solo, piccolo team | Xcode Cloud |
| iOS e Android nativi, team mobile dedicato, vogliono firma gestita | Bitrise, Codemagic o Appcircle |
| Deve ospitare l'intera piattaforma da solo | Appcircle Server, o esecutori auto-hosted su GitLab, GitHub, o Azure DevOps |
| Tutto già su GitHub o GitLab, team conosce fastlane | GitHub Actions o GitLab CI con esecutori macOS |
| Microsoft shop, proveniente da App Center | Azure DevOps |
| Capacitor app, vogliono mantenere CI corrente e evitare esecutori macOS | Capgo Build chiamato dalla propria CI |
| Capacitor app che invia modifiche web frequenti | Any of the above plus Capgo live updates |
| Le prove di UI o gli agenti AI richiedono simulatori iOS da CI Linux | Qualsiasi piattaforma di costruzione sopra più Argent Cloud |
Costo: cosa realmente determina la fattura
I prezzi esatti cambiano spesso, quindi confronta il modello piuttosto che un numero:
- MacOS ospitato per minuto (GitHub, GitLab, CircleCI, Codemagic pay-as-you-go): il costo scala con il conteggio e la durata delle costruzioni. Caching CocoaPods o pacchetti Swift e saltando le costruzioni native per modifiche web riducono al minimo.
- Crediti e livelli (Bitrise, CircleCI, Appcircle): spesa mensile prevedibile, ma le macchine più grandi consumano i crediti più velocemente.
- Ore incluse (Xcode Cloud): economico fino a quando non superi le 25 ore incluse.
- Job in parallelo (Azure DevOps): paghi per la concorrenza, non per i minuti.
- Simulatori mensili a tariffa fissa (Argent Cloud, per le prove): un prezzo fisso per un blocco di simulatori riservati, quindi i lunghi esegui non aumentano il conto.
- Macs auto-hosted: nessuna tariffa per minuto, ma hardware, elettricità e tempo di un ingegnere per gli aggiornamenti di Xcode e i problemi della keychain.
L'applicazione iOS più economica è quella che non si esegue. Per le applicazioni ibride, inviare modifiche JavaScript esclusivamente come aggiornamenti in tempo reale al posto di nuovi binari salva di solito più di quanto cambiare i fornitori di CI.
Troubleshooting checklist when switching platforms
- Esporta il certificato di distribuzione come
.p12con la sua chiave privata prima di lasciare l'antica piattaforma. Alcuni servizi lo hanno generato e non ti hanno mai mostrato la chiave privata. - Crea una chiave App Store Connect API con accesso all'amministratore di App Manager al posto di riutilizzare un ID Apple personale.
- Verifica che l'Xcode predefinito della nuova piattaforma sia 26 o successivo.
- Sposta la logica del numero di build. Se l'antica piattaforma lo ha aumentato automaticamente, il tuo primo build sulla nuova potrebbe collidere.
- Conserva
ITSAppUsesNonExemptEncryptioninInfo.plistcosì i build non aspettano la conformità all'esportazione.
Per gli errori specifici della pipeline, vedi CI/CD per Capacitor: insidie comuniPer una comparazione Capacitor-focale che copre anche gli aggiornamenti in tempo reale, vedere Comparare le piattaforme CI/CD per le app Capacitor.