Aller au contenu
useffect.sh
Planifier 30 min avec un senior
Outillage

Development build

Un build debug de votre propre app qui embarque expo-dev-client : vos modules natifs, plus un launcher pour se connecter à Metro.

Définition

Un development build est un build debug de votre propre application qui contient le package expo-dev-client. Il joue le rôle qu’Expo Go jouait pour les débutants, mais avec exactement votre code natif : vos librairies, vos config plugins, votre bundle identifier, vos permissions. L’app s’ouvre sur un écran de lancement qui liste les serveurs Metro disponibles et les updates publiées, puis charge le JavaScript depuis votre machine avec Fast Refresh et React Native DevTools. On le compile une fois (localement avec npx expo run:ios, ou sur EAS Build avec un profil où developmentClient vaut true), on l’installe sur le simulateur ou le device, et on ne le recompile que lorsque le natif change. C’est le mode de développement recommandé par Expo pour tout projet destiné aux stores, et le seul possible dès qu’une librairie native absente d’Expo Go entre dans le projet. Le premier module natif absent d’Expo Go impose d’en créer un.

Dans une vraie app

Dans eas.json, le profil de développement se reconnaît à "developmentClient": true et en général "distribution": "internal", ce qui produit un APK ou un build ad hoc installable sans store. En local, npx expo run:ios ou run:android compilent le même build si expo-dev-client est dans les dépendances. La question à se poser à chaque git pull : le natif a-t-il changé ? Un nouveau package avec du code natif, un config plugin modifié, un bump de SDK, et le build installé n’est plus bon. Le message « native module not found » après un pull est presque toujours ça.

Une bonne pratique d’équipe est de calculer le fingerprint du projet (@expo/fingerprint, le même mécanisme que la politique de runtime version d’EAS Update) et de l’afficher dans l’app ou de le vérifier en CI, pour savoir quel development build correspond à quel commit. Les équipes qui gardent un build par développeur sur un simulateur pendant des semaines finissent par déboguer des écarts qui n’existent pas.

Le development build n’est pas un build de test : il embarque le dev menu, le launcher et les outils de debug, et ses performances ne représentent rien. Pour les testeurs et le QA, on produit un build preview (release, distribution interne), sans developmentClient.

Nos offres sur ce sujet

Sources

Les 35 termes du glossaire

Un de ces sujets bloque votre app ?

30 minutes avec un senior pour regarder le problème dans votre code. Gratuit.