Dans une vraie app
Le choix de la politique est une décision d’équipe. appVersion est simple mais repose sur la discipline d’incrémenter version à chaque release avec du natif ; un bump oublié et une update casse des builds en production. fingerprint retire ce risque en hashant ce qui touche au natif (dossiers natifs, config, dépendances natives) ; depuis le SDK 58, le preset par défaut balanced ignore les bumps de version et hashe les modules natifs par nom et version, ce qui limite les rebuilds inutiles. Il produit tout de même plus de runtime versions qu’une politique manuelle, donc plus de builds à maintenir en parallèle. Une chaîne manuelle convient aux projets qui suivent déjà un process de release strict.
Pour vérifier ce qu’une build embarque, eas build:list affiche la runtime version de chaque build, et eas update:list celle de chaque update ; les deux doivent coïncider pour la plateforme concernée. eas fingerprint:compare explique pourquoi deux fingerprints diffèrent, ce qui évite les « mais je n’ai rien changé côté natif » quand une dépendance a mis à jour un podspec. L’API Updates.runtimeVersion donne la valeur au runtime, utile dans un écran de debug interne.
Le piège le plus coûteux : les projets qui gardent runtimeVersion figé sur "1.0.0" pendant des mois « pour que les updates passent partout ». Tôt ou tard une update référence un module natif que les anciens builds n’ont pas, et le crash touche précisément les utilisateurs qui ne mettent pas leur app à jour.
Termes liés
OTA update (EAS Update)
Livrer un nouveau bundle JavaScript et ses assets aux apps déjà installées, sans passer par les stores ; EAS Update est le service d’Expo pour ça.
EAS Build
Le service de build hébergé d’Expo : des profils dans eas.json, la gestion des credentials, et des runners macOS et Linux pour iOS et Android.
Prebuild (Continuous Native Generation)
La commande Expo qui génère les dossiers android et ios à partir de app.json et des config plugins, au lieu de les maintenir à la main.
Development build
Un build debug de votre propre app qui embarque expo-dev-client : vos modules natifs, plus un launcher pour se connecter à Metro.