In a real app
In eas.json, the development profile is recognizable by "developmentClient": true and usually "distribution": "internal", which produces an APK or an ad hoc build installable without a store. Locally, npx expo run:ios or run:android compile the same build if expo-dev-client is in the dependencies. The question to ask on every git pull: did native code change? A new package with native code, a modified config plugin, an SDK bump, and the installed build is stale. The “native module not found” message after a pull is almost always that.
A good team practice is to compute the project fingerprint (@expo/fingerprint, the same mechanism as the EAS Update runtime version policy) and show it in the app or check it in CI, so you know which development build matches which commit. Teams that keep one build per developer on a simulator for weeks end up debugging differences that do not exist.
A development build is not a test build: it ships the dev menu, the launcher, and the debugging hooks, and its performance means nothing. For testers and QA you produce a preview build (release, internal distribution) without developmentClient.
Related terms
Expo Go
Expo’s sandbox app, with a fixed set of native modules: for learning and prototyping, not for shipping.
EAS Build
Expo’s hosted build service: profiles in eas.json, credentials management, and macOS and Linux runners for iOS and Android.
Prebuild (Continuous Native Generation)
The Expo command that generates the android and ios folders from app.json and config plugins instead of maintaining them by hand.
OTA update (EAS Update)
Shipping a new JavaScript bundle and its assets to installed apps without going through the stores; EAS Update is Expo’s service for it.
Expo
The open-source framework React Native recommends: a native module SDK, a CLI, prebuild, Expo Router, and the EAS cloud services.
Our services on this
Expo migration
Move a bare React Native app to Expo: prebuild, config plugins, development builds, EAS Build and Update. PR by PR, in your repo, without a rewrite.
App development
From idea to store with a squad of senior React Native engineers who already work together: scoping, Expo architecture, design system, CI/CD, handover.