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

CapabilityExpo GoDevelopment build
Quick learningGoodGood after setup
Custom native dependenciesNoYes, after rebuild
Custom app configLimitedYes
Permissions and native setupLimitedYes
Release-like native behaviorNoMuch closer
Store workflow rehearsalNoYes, 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.plist changed.
  • 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.