The `expo-dev-client` package is a fundamental component of the Expo ecosystem, enabling developers to create custom development builds of their React Native applications. Unlike the generic Expo Go app, development builds include your project's specific native code, allowing for the use of custom native modules (third-party native libraries or your own native code) and advanced native configurations without ejecting to a bare React Native workflow. It provides a development environment that closely mirrors production while retaining fast iteration speeds for JavaScript changes. The current stable version is 55.0.28, aligning with Expo SDK 55. Expo SDKs are typically released three times a year, with each release targeting a specific React Native version. Key differentiators include improved debugging tools, a configurable launcher UI for switching between development servers, and seamless integration with EAS Build for cloud-based native builds.
npm install expo-dev-clientVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates creating a new Expo project, installing `expo-dev-client`, generating native projects with `prebuild`, and then building and running a custom development client. It also shows how to use `isDevelopmentBuild` and `getUrl` within your app logic.
Consult the official Expo SDK upgrade guide and changelog for detailed migration steps. Typically involves `npx expo install --fix` and rebuilding the native client.
After modifying native dependencies or configuration (e.g., installing a new native module, changing a config plugin), run `npx expo prebuild` then `npx expo run:ios` or `npx expo run:android`.
Migrate development to use `expo-dev-client` and custom development builds, especially if your project requires native modules not included in Expo Go or uses config plugins.
Ensure your development machine and device/simulator are on the same network. Try `npx expo start --dev-client --host tunnel` for a tunnel connection if local network issues persist. Clear Metro bundler cache with `npx expo start --clear`.
Verify that your device and computer are on the same network. Try running `npx expo start --dev-client --host lan` or `npx expo start --dev-client --host tunnel`. Check firewall settings. Clear the Metro cache with `npx expo start --clear`.
Try running `npx expo start --no-dev --minify` to simulate a production bundle locally and pinpoint JavaScript errors. Access device logs via Android Studio or Xcode for more detailed stack traces. Ensure `react-native` versions align in `app.json` and `package.json`.
Ensure your custom development client is up-to-date with your project's SDK. If in doubt, rebuild the native client with `npx expo prebuild` followed by `npx expo run:ios` or `npx expo run:android`.
Upgrade your project to a supported SDK version using `npx expo upgrade`. If you are using a supported version, ensure your Expo CLI and related tools are also up-to-date.