EAS Build è il servizio ospitato di Expo Application Services che trasforma un progetto Expo o React Native in binari installabili: un .aab o un .apk per Android, un .ipa per iOS. Lanci un comando, il progetto viene caricato, una macchina cloud nuova lo compila e lo firma, e tu scarichi il risultato o lo invii direttamente agli store. È il motivo per cui puoi produrre una build per iPhone da un portatile Windows.
Sul prezzo, la risposta breve: il piano Free copre fino a 15 build Android e 15 build iOS al mese, in una coda a bassa priorità. I piani a pagamento partono da 19 USD al mese (Starter, con 45 USD di credito per le build) e 199 USD al mese (Production, con 225 USD di credito), e ogni build oltre il credito costa da 1 a 4 USD a seconda della piattaforma e della dimensione della macchina. Questi dati vengono dalla pagina dei prezzi di Expo, consultata il 13 ottobre 2026.
Questa guida si concentra sul servizio di build. Per il quadro generale del framework, del suo SDK e del suo router, parti da che cos'è Expo.
Cosa fa EAS Build, e cosa non fa
La definizione di Expo è breve: EAS Build è «un servizio ospitato per compilare i binari delle tue app Expo e React Native». Sa compilare anche progetti nativi che non usano né Expo né React Native, ma le sue impostazioni predefinite sono pensate per le app Expo, quindi la maggior parte dei progetti non richiede alcuna configurazione aggiuntiva.
In concreto, una build si occupa di quattro compiti che è faticoso preparare a mano:
- Una macchina di build pulita. Ogni build ha la sua macchina virtuale con gli strumenti già installati: l'SDK Android su Linux, Xcode su macOS.
- La firma. EAS può generare e conservare il tuo keystore Android, il certificato di distribuzione iOS e i profili di provisioning, oppure usare quelli che fornisci tu.
- Impostazioni ripetibili. I profili di build in un file eas.json descrivono ogni tipo di build, così lo stesso comando dà lo stesso risultato su qualsiasi portatile o in CI.
- La distribuzione. Una build completata può essere condivisa con i tester tramite un URL, oppure passata a EAS Submit per gli store.
Cosa non fa: scrivere la scheda dello store, fare gli screenshot o rilasciare l'app al pubblico. Questi passaggi restano in App Store Connect e nella Play Console.
Build, Submit, Update: tre servizi diversi
EAS è una famiglia di servizi, e spesso vengono confusi. Solo uno di loro compila qualcosa.
| Servizio | Cosa fa | Cosa ottieni |
|---|---|---|
| EAS Build | Compila e firma l'app nativa su una macchina cloud | Un file .aab, .apk o .ipa, più i log della build |
| EAS Submit | Carica un binario completato su Google Play o App Store Connect | Una release su un canale Play, o una build in attesa in TestFlight |
| EAS Update | Invia modifiche JavaScript e agli asset alle app già installate | Una correzione sui telefoni degli utenti senza una nuova release sugli store |
Come funziona una build EAS, passo dopo passo
Ti servono Node.js, l'EAS CLI e un account Expo gratuito. Da lì, il percorso dal codice allo store è questo:
- Configura una volta. Il comando eas build:configure crea eas.json nella radice del progetto, accanto a package.json.
- Avvia una build. eas build --platform android (oppure ios, o all) usa per impostazione predefinita il profilo production; aggiungi --profile preview per un altro profilo.
- Credenziali. La CLI verifica le credenziali di firma e, la prima volta, propone di generare quelle mancanti.
- Caricamento e coda. Il progetto viene archiviato e caricato, poi la build aspetta una macchina libera nella coda del tuo piano.
- Compilazione su una macchina nuova. La macchina installa le dipendenze, genera i progetti nativi, compila e firma l'app. I log scorrono in tempo reale nella dashboard di Expo.
- Recupera il file. Scaricalo, condividilo con un link di installazione oppure lascia che EAS Submit lo carichi, in un secondo momento con eas submit o nella stessa esecuzione con --auto-submit.
I profili di build in eas.json
Un profilo è un insieme di impostazioni di build con un nome. Il file generato da eas build:configure ne contiene tre:
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {}
}
}| Profilo | Per chi è | Risultato tipico |
|---|---|---|
| development | Tu, mentre sviluppi: una development build con gli strumenti per sviluppatori (serve expo-dev-client), installata direttamente sui tuoi dispositivi | APK o build iOS ad hoc; mai inviata a uno store |
| preview | Il tuo team e gli stakeholder, per testare in condizioni simili alla produzione | APK o build iOS ad hoc, condivisa tramite URL |
| production | Gli store, compresi TestFlight e i canali di test di Play | AAB per Android (predefinito), IPA per iOS |
Due impostazioni ricorrono spesso. "buildType": "apk" sotto android trasforma l'output di un profilo in un APK installabile direttamente, che è ciò che serve per preview. "resourceClass": "large" sposta una build pesante su una macchina più potente; medium è il valore predefinito, e le macchine large richiedono un piano a pagamento. I profili possono anche ereditare l'uno dall'altro con "extends", fino a cinque livelli.
Credenziali e firma
Ogni build destinata agli store deve essere firmata. Per Android serve un upload keystore; per iOS, un certificato di distribuzione e un profilo di provisioning, entrambi legati al tuo account Apple Developer. EAS può generarli e conservarli sui server di Expo, così qualsiasi macchina o collega può avviare una build senza passarsi file. Puoi anche caricare i tuoi, cosa importante quando l'app esiste già: Google rifiuta gli aggiornamenti firmati con una chiave di caricamento diversa, e la firma delle app di Play conserva la chiave di firma finale lato Google.
I prezzi di EAS Build nel 2026
Expo vende EAS per piano, e ogni piano a pagamento include un importo in dollari di credito per le build. Il piano Free funziona diversamente: conta le build, non i dollari.
| Piano | Prezzo al mese | Build incluse | Coda | Build simultanee | Durata massima di una build |
|---|---|---|---|---|---|
| Free | 0 USD | Fino a 15 build Android e 15 build iOS | Bassa priorità | 1 | 45 minuti |
| Starter | 19 USD più l'uso | 45 USD di credito per le build | Alta priorità | 1 | 2 ore |
| Production | 199 USD più l'uso | 225 USD di credito per le build | Alta priorità | 2 | 2 ore |
| Enterprise | Su misura, da 1.000 USD | Personalizzabile | Alta priorità | 5 | 2 ore |
Una volta esaurito il credito, ogni build viene fatturata a una tariffa fissa che dipende dalla piattaforma e dalla macchina. Ogni build simultanea aggiuntiva costa 50 USD al mese sui piani a pagamento.
| Worker | Macchina | Prezzo per build |
|---|---|---|
| Android, medium | 4 vCPU, 16 GB di RAM | 1 USD |
| Android, large | 8 vCPU, 32 GB di RAM | 2 USD |
| iOS, medium | 5 core performance, 20 GiB di RAM | 2 USD |
| iOS, large | 10 core performance, 40 GiB di RAM | 4 USD |
La coda e la durata massima
Per uno sviluppatore che lavora da solo, il vero costo del piano Free è il tempo. Expo avverte che nelle ore di punta l'attesa nella coda a bassa priorità può superare i 90 minuti, mentre punta a «zero attese» nella coda ad alta priorità usata da tutti i piani a pagamento. Anche la build stessa deve terminare entro 45 minuti sul piano Free, contro 2 ore sui piani a pagamento; un grande progetto iOS con molti moduli nativi può avvicinarsi a questo limite.
Quanto costa un mese di build
Tre casi tipici, calcolati con le tariffe qui sopra su macchine medium (calcoli nostri, non dati di Expo):
- Progetto personale, 10 build Android e 8 build iOS: 0 USD sul piano Free, se la coda non ti pesa.
- Piccolo team, 30 build Android e 20 build iOS: 30 USD più 40 USD, quindi 70 USD di uso. I 45 USD di credito di Starter ne coprono la maggior parte, restano 25 USD oltre all'abbonamento da 19 USD: 44 USD per il mese.
- Prodotto attivo, 100 build Android e 80 build iOS: 100 USD più 160 USD, quindi 260 USD di uso. Con Production, i 225 USD di credito lasciano 35 USD oltre ai 199 USD: 234 USD per il mese.
Le macchine large raddoppiano il prezzo di ogni build, quindi usale solo per le build che restano davvero senza memoria o senza tempo. Le build avviate da EAS Workflows, il servizio di CI di Expo, sono fatturate alle stesse tariffe fisse.
EAS Build o build locale?
Non sei obbligato a usare il cloud. Esistono due opzioni locali: eas build --local, che esegue lo stesso processo di build sulla tua macchina, e la strada classica con Xcode e Android Studio, senza EAS.
| Criterio | EAS Build (cloud) | eas build --local | Xcode / Android Studio |
|---|---|---|---|
| iOS da Windows o Linux | Sì | No, iOS richiede un Mac con Xcode | No, Xcode gira solo su macOS |
| Sistema supportato | Qualsiasi macchina con Node.js | macOS e Linux; Windows non supportato (WSL non testato) | macOS per iOS; qualsiasi sistema per Android |
| Configurazione | EAS CLI e un account Expo | SDK e NDK Android, fastlane e CocoaPods per iOS, più un login Expo | Toolchain native complete, firma manuale |
| Firma | Gestita da EAS o la tua | Può scaricare le credenziali gestite | Interamente a tuo carico |
| Costo | Quota o credito del piano, poi da 1 a 4 USD per build | Il tuo hardware | Il tuo hardware |
| Limiti principali | Coda sul piano Free, durata massima in base al piano | Una piattaforma alla volta, niente cache, versioni degli strumenti in eas.json ignorate, variabili segrete da impostare in locale | Nessuna configurazione condivisa nel team |
Una regola semplice: resta nel cloud finché non hai un Mac, finché più persone compilano l'app o finché la quota gratuita copre il tuo mese. Passa alle build locali quando iteri sul codice nativo molte volte al giorno su un Mac, quando le policy aziendali vietano i server di build di terze parti, oppure per riprodurre sulla tua macchina un errore avvenuto nel cloud, che è proprio l'uso che Expo suggerisce per --local. La documentazione sulle build locali elenca le limitazioni attuali.
Dalla build allo store, con o senza Cadrant
Una volta pronto il binario, EAS Submit si occupa del caricamento. Su Android invia il .aab a un canale Play (test interno, alpha, beta o produzione), e può persino creare la prima release di un'app nuova sul canale di test interno. Su iOS invia il .ipa ad App Store Connect, dove compare in TestFlight dopo l'elaborazione; la scheda dello store e l'invio per la revisione restano manuali. Il resto del percorso verso lo store, dall'account sviluppatore alla revisione, è nella nostra guida per pubblicare un'app su Google Play.
Con il creatore di app mobile di Cadrant non scrivi mai eas.json né digiti un comando di build, ma a compilare è sempre EAS Build, sul tuo account Expo. Colleghi quell'account una sola volta in Integrazioni, e ogni pubblicazione usa la tua quota EAS gratuita di 15 build Android e 15 build iOS al mese. Su Android, Cadrant genera e conserva l'upload keystore, ed Expo invia l'app bundle alla tua Play Console come release in bozza sul canale di test interno. Su iOS, un accesso Apple guidato crea l'app in App Store Connect e predispone il certificato di distribuzione, poi Expo invia il binario al tuo account. Gli account, la quota e le app restano tuoi.