EAS Build est le service hébergé d'Expo Application Services qui transforme un projet Expo ou React Native en binaires installables : un .aab ou un .apk pour Android, un .ipa pour iOS. Vous lancez une commande, le projet est envoyé, une machine cloud neuve le compile et le signe, puis vous téléchargez le résultat ou l'envoyez directement aux stores. C'est grâce à lui qu'on peut produire un build iPhone depuis un PC sous Windows.
Côté prix, la réponse courte : le plan Free couvre jusqu'à 15 builds Android et 15 builds iOS par mois, dans une file à basse priorité. Les plans payants commencent à 19 $ par mois (Starter, avec 45 $ de crédit de build) et 199 $ par mois (Production, avec 225 $ de crédit), et chaque build au-delà du crédit coûte de 1 $ à 4 $ selon la plateforme et la taille de la machine. Ces chiffres viennent de la page de tarifs d'Expo, consultée le 13 octobre 2026.
Ce guide se concentre sur le service de build. Pour la vue d'ensemble du framework, de son SDK et de son routeur, commencez par ce qu'est Expo.
Ce que fait EAS Build, et ce qu'il ne fait pas
La définition d'Expo tient en une phrase : EAS Build est « un service hébergé qui construit les binaires de vos projets Expo et React Native ». Il sait aussi construire des projets natifs qui n'utilisent ni Expo ni React Native, mais ses réglages par défaut sont pensés pour les apps Expo : la plupart des projets n'ont rien à configurer de plus.
Concrètement, un build prend en charge quatre tâches pénibles à mettre en place à la main :
- Une machine de build propre. Chaque build a sa propre machine virtuelle, outils déjà installés : le SDK Android sous Linux, Xcode sous macOS.
- La signature. EAS peut générer et conserver votre keystore Android, votre certificat de distribution iOS et vos profils de provisionnement, ou utiliser ceux que vous fournissez.
- Des réglages reproductibles. Les profils de build d'un fichier eas.json décrivent chaque type de build : la même commande donne le même résultat sur n'importe quel ordinateur ou en CI.
- La distribution. Un build terminé peut être partagé aux testeurs par une URL, ou confié à EAS Submit pour les stores.
Ce qu'il ne fait pas : rédiger votre fiche de store, prendre les captures d'écran ou publier l'app pour le grand public. Ces étapes restent dans App Store Connect et la Play Console.
Build, Submit, Update : trois services différents
EAS est une famille de services, souvent confondus. Un seul d'entre eux compile quelque chose.
| Service | Ce qu'il fait | Ce que vous obtenez |
|---|---|---|
| EAS Build | Compile et signe l'app native sur une machine cloud | Un fichier .aab, .apk ou .ipa, avec les logs du build |
| EAS Submit | Envoie un binaire terminé sur Google Play ou App Store Connect | Une version sur une piste Play, ou un build en attente dans TestFlight |
| EAS Update | Envoie des changements JavaScript et d'assets aux apps déjà installées | Un correctif sur les téléphones sans nouvelle version sur les stores |
Comment se déroule un build EAS, étape par étape
Il vous faut Node.js, l'EAS CLI et un compte Expo gratuit. Ensuite, le chemin du code au store ressemble à ceci :
- Configurer une fois. La commande eas build:configure crée eas.json à la racine du projet, à côté de package.json.
- Lancer un build. eas build --platform android (ou ios, ou all) utilise par défaut le profil production ; ajoutez --profile preview pour un autre profil.
- Identifiants. La CLI vérifie les identifiants de signature et propose de générer ceux qui manquent la première fois.
- Envoi et file d'attente. Le projet est archivé et envoyé, puis le build attend une machine libre dans la file de votre plan.
- Compilation sur une machine neuve. La machine installe les dépendances, génère les projets natifs, compile et signe l'app. Les logs s'affichent en direct dans le tableau de bord Expo.
- Récupérer le fichier. Téléchargez-le, partagez-le avec un lien d'installation, ou laissez EAS Submit l'envoyer, après coup avec eas submit ou dans la même commande avec --auto-submit.
Les profils de build dans eas.json
Un profil est un ensemble nommé de réglages de build. Le fichier généré par eas build:configure en contient trois :
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {}
}
}| Profil | Pour qui | Résultat habituel |
|---|---|---|
| development | Vous, pendant le développement : un development build avec les outils de développement (il faut expo-dev-client), installé directement sur vos appareils | APK ou build iOS ad hoc ; jamais envoyé sur un store |
| preview | Votre équipe et vos interlocuteurs, pour tester en conditions proches de la production | APK ou build iOS ad hoc, partagé par URL |
| production | Les stores, y compris TestFlight et les pistes de test Play | AAB pour Android (par défaut), IPA pour iOS |
Deux réglages reviennent souvent. "buildType": "apk" sous android transforme la sortie d'un profil en APK installable directement, ce qu'on veut pour preview. "resourceClass": "large" envoie un build lourd sur une machine plus puissante ; medium est la valeur par défaut, et les machines large exigent un plan payant. Les profils peuvent aussi hériter les uns des autres avec "extends", sur cinq niveaux au plus.
Identifiants et signature
Tout build destiné aux stores doit être signé. Pour Android, il faut un keystore d'importation ; pour iOS, un certificat de distribution et un profil de provisionnement, tous deux liés à votre compte Apple Developer. EAS peut les générer et les conserver sur les serveurs d'Expo, pour que n'importe quelle machine ou n'importe quel collègue puisse lancer un build sans s'échanger de fichiers. Vous pouvez aussi fournir les vôtres, ce qui compte quand l'app existe déjà : Google refuse les mises à jour signées avec une autre clé d'importation, et la signature d'application Play conserve la clé finale côté Google.
Les prix d'EAS Build en 2026
Expo vend EAS par plan, et chaque plan payant inclut un montant en dollars de crédit de build. Le plan Free fonctionne autrement : il compte des builds, pas des dollars.
| Plan | Prix par mois | Builds inclus | File d'attente | Builds simultanés | Durée max. d'un build |
|---|---|---|---|---|---|
| Free | 0 $ | Jusqu'à 15 builds Android et 15 builds iOS | Basse priorité | 1 | 45 minutes |
| Starter | 19 $ plus l'usage | 45 $ de crédit de build | Haute priorité | 1 | 2 heures |
| Production | 199 $ plus l'usage | 225 $ de crédit de build | Haute priorité | 2 | 2 heures |
| Enterprise | Sur devis, à partir de 1 000 $ | Personnalisable | Haute priorité | 5 | 2 heures |
Une fois le crédit épuisé, chaque build est facturé à un tarif fixe qui dépend de la plateforme et de la machine. Chaque build simultané supplémentaire coûte 50 $ par mois sur les plans payants.
| Machine | Configuration | Prix par build |
|---|---|---|
| Android, medium | 4 vCPU, 16 Go de RAM | 1 $ |
| Android, large | 8 vCPU, 32 Go de RAM | 2 $ |
| iOS, medium | 5 cœurs performance, 20 Gio de RAM | 2 $ |
| iOS, large | 10 cœurs performance, 40 Gio de RAM | 4 $ |
La file d'attente et la durée maximale
Pour un développeur seul, le vrai coût du plan Free, c'est le temps. Expo prévient qu'aux heures de pointe, l'attente peut dépasser 90 minutes dans la file à basse priorité, alors qu'il vise « zéro attente » dans la file à haute priorité de tous les plans payants. Le build lui-même doit aussi se terminer en 45 minutes sur le plan Free, contre 2 heures sur les plans payants ; un gros projet iOS avec beaucoup de modules natifs peut s'approcher de cette limite.
Ce que coûte un mois de builds
Trois cas types, calculés à partir des tarifs ci-dessus sur des machines medium (nos calculs, pas des chiffres d'Expo) :
- Projet perso, 10 builds Android et 8 builds iOS : 0 $ sur le plan Free, si la file d'attente ne vous gêne pas.
- Petite équipe, 30 builds Android et 20 builds iOS : 30 $ plus 40 $, soit 70 $ d'usage. Les 45 $ de crédit du Starter en couvrent l'essentiel, il reste 25 $ en plus de l'abonnement à 19 $ : 44 $ pour le mois.
- Produit actif, 100 builds Android et 80 builds iOS : 100 $ plus 160 $, soit 260 $ d'usage. En Production, les 225 $ de crédit laissent 35 $ en plus des 199 $ : 234 $ pour le mois.
Une machine large double le prix de chaque build : n'y passez que les builds qui manquent réellement de mémoire ou de temps. Les builds lancés depuis EAS Workflows, le service de CI d'Expo, sont facturés aux mêmes tarifs fixes.
EAS Build ou build local ?
Rien ne vous oblige à passer par le cloud. Il existe deux options locales : eas build --local, qui exécute le même processus de build sur votre propre machine, et la voie classique par Xcode et Android Studio, sans EAS du tout.
| Critère | EAS Build (cloud) | eas build --local | Xcode / Android Studio |
|---|---|---|---|
| iOS depuis Windows ou Linux | Oui | Non, iOS exige un Mac avec Xcode | Non, Xcode ne tourne que sous macOS |
| Système pris en charge | Toute machine avec Node.js | macOS et Linux ; Windows non pris en charge (WSL non testé) | macOS pour iOS ; tout système pour Android |
| Installation | EAS CLI et un compte Expo | SDK et NDK Android, fastlane et CocoaPods pour iOS, plus une connexion Expo | Toutes les chaînes d'outils natives, signature manuelle |
| Signature | Gérée par EAS ou la vôtre | Peut télécharger les identifiants gérés | Entièrement à votre charge |
| Coût | Quota ou crédit du plan, puis 1 $ à 4 $ par build | Votre matériel | Votre matériel |
| Limites principales | File d'attente sur Free, durée maximale selon le plan | Une plateforme à la fois, pas de cache, versions d'outils d'eas.json ignorées, variables secrètes à définir en local | Aucune configuration partagée dans l'équipe |
Une règle simple : restez dans le cloud tant que vous n'avez pas de Mac, tant que plusieurs personnes construisent l'app ou tant que le quota gratuit couvre votre mois. Passez en local quand vous itérez sur du code natif plusieurs fois par jour sur un Mac, quand la politique de l'entreprise interdit les serveurs de build tiers, ou pour reproduire sur votre machine un échec survenu dans le cloud, l'usage même qu'Expo met en avant pour --local. La documentation des builds locaux liste les limites actuelles.
Du build au store, avec ou sans Cadrant
Une fois le binaire prêt, EAS Submit se charge de l'envoi. Sur Android, il envoie le .aab sur une piste Play (test interne, alpha, bêta ou production), et il peut même créer la première version d'une toute nouvelle app sur la piste de test interne. Sur iOS, il envoie le .ipa sur App Store Connect, où il apparaît dans TestFlight après traitement ; la fiche et l'envoi en examen restent manuels. La suite du parcours, du compte développeur à l'examen, se trouve dans notre guide pour publier une app sur Google Play.
Avec le créateur d'applications mobiles de Cadrant, vous n'écrivez jamais d'eas.json ni de commande de build, mais c'est toujours EAS Build qui compile, sur votre propre compte Expo. Vous connectez ce compte une fois dans Intégrations, et chaque publication utilise votre quota EAS gratuit de 15 builds Android et 15 builds iOS par mois. Sur Android, Cadrant génère et conserve le keystore d'importation, et Expo envoie l'app bundle dans votre Play Console, en version brouillon sur la piste de test interne. Sur iOS, une connexion Apple guidée crée l'app dans App Store Connect et provisionne le certificat de distribution, puis Expo envoie le binaire sur votre compte. Les comptes, le quota et les apps restent les vôtres.