Development Builds
A development build is your app compiled as a debug native binary with expo-dev-client included. Treat it as a project-specific Expo Go.
Expo Go Versus Development Build
| Capability | Expo Go | Development build |
|---|---|---|
| Quick learning | Good | Good after setup |
| Custom native dependencies | No | Yes, after rebuild |
| Custom app config | Limited | Yes |
| Permissions and native setup | Limited | Yes |
| Release-like native behavior | No | Much closer |
| Store workflow rehearsal | No | Yes, when paired with EAS profiles |
Create One
npx expo install expo-dev-client
npx expo run:android
npx expo run:ios
Or build through EAS:
eas build --profile development --platform android
eas build --profile development --platform ios
Rebuild When These Change
- Native dependency added, removed, or upgraded.
- Expo SDK upgraded.
- Config plugin added or changed.
- App config changed in a native-affecting way.
- Android permissions or iOS
Info.plistchanged. - Native module code changed.
JavaScript-only changes can usually reload through Metro without rebuilding the development binary.
Practical Rule
If the feature needs a permission prompt, background mode, camera, push notifications, audio mode, BLE, native SDK, widget, share extension, or store signing, start from a development build. Do not wait until release week.