A development build is the team's own debug-capable native app. It includes the exact native modules and configuration the product needs, while Metro still supplies JavaScript during development.
Know When Expo Go Stops Fitting
Create a development build when adding a native dependency, config plugin, app extension, custom module, notification capability, associated domain, or other native configuration. JavaScript-only edits usually need only Metro; changes to native dependencies or configuration require rebuilding the native app.
Build a Repeatable Workflow
- Install and configure
expo-dev-client. - Define a development build profile in
eas.json. - Use a distinct application identifier and visible name when development and production builds coexist.
- Build locally or with EAS, install on target devices, and connect it to Metro.
- Share an internal development profile with the team instead of exchanging ad hoc native projects.
Keep generated native projects disposable when the project follows continuous native generation. Express repeatable native changes through app configuration and config plugins.
Separate Environment Concerns
Classify every value:
- Public build-time configuration: safe to embed in the client.
- Server secrets: available only to API routes, CI, or backend services.
- Native configuration: may require a rebuild when changed.
- Runtime remote configuration: fetched and validated after launch.
Use explicit development, preview, and production environments. Fail builds when required values are missing. Never infer production from a developer's local shell state.
Diagnose Build Drift
- Run
bunx expo-doctor. - Confirm package versions match the Expo SDK.
- Compare the installed binary's native configuration with the current branch.
- Rebuild after native changes instead of repeatedly clearing Metro caches.
- Reproduce on both a clean install and an upgrade path.
Sources
Verify workflow details in Expo's current development-build, create a development build, and environment variables documentation.