Skip to content

Development Builds and Environments

A React Native guide for coding agents. Also covers eas development build, expo go vs development build, environment variables, native dependencies.

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

  1. Install and configure expo-dev-client.
  2. Define a development build profile in eas.json.
  3. Use a distinct application identifier and visible name when development and production builds coexist.
  4. Build locally or with EAS, install on target devices, and connect it to Metro.
  5. 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.

Use this guidance in your coding agent

Install the Better Design MCP once. Your agent then loads this page with one call.

get-react-native-guide({ topic: "development-builds" })
claude mcp add --scope user better-design --transport http https://better-design.com/api/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
Browse related design systems