--- title: Use a development build description: Learn how to use development builds for a project. sidebar_title: Use a build --- import { Terminal } from '~/ui/components/Snippet'; import ImageSpotlight from '~/components/plugins/ImageSpotlight'; import { Tab, Tabs } from '~/ui/components/Tabs'; import { BoxLink } from '~/ui/components/BoxLink'; import { Collapsible } from '~/ui/components/Collapsible'; Usually, creating a new native build from scratch takes long enough that you'll be tempted to switch tasks and lose your focus. However, with the development build installed on your device or an emulator/simulator, you won't have to wait for the native build process until you [change the underlying native code](#rebuild-a-development-build) that powers your app. ## Add error handling Certain types of errors can provide more helpful error messages than the ones that ship by default with React Native. To turn this feature on, you need to import `expo-dev-client` at the top of the **App.{js|tsx}** file. ```js App.js import 'expo-dev-client'; ``` > This will only affect the application in which you make this change. If you want to load multiple projects from a single development app, you'll need to add this import statement to each project. ## Start the development server To start developing, run the following command to start the development server: To open the project inside your development client: - Press a or i keys to open your project on an Android Emulator or an iOS Simulator. - On a physical device, scan the QR code from your system's camera or a QR code reader to open the project on your device. ## The launcher screen If you launch the development build from your device's Home screen, you will see your launcher screen, which looks similar to the following: If a bundler is detected on your local network, or if you've signed in to an Expo account in both Expo CLI and your development build, you can connect to it directly from this screen. Otherwise, you can connect by scanning the QR code displayed by the Expo CLI. ## Rebuild a development build If you add a library to your project that contains native code APIs, for example, [`expo-secure-store`](/versions/latest/sdk/securestore/), you will have to rebuild the development client. This is because the native code of the library is not included in the development client automatically when installing the library as a dependency on your project. ## Debug a development build When you need to, you can access the menu by pressing Cmd ⌘ + d or Ctrl + d in Expo CLI or by shaking your phone or tablet. Here you'll be able to access all of the functions of your development build, any debugging functionality you need, or switch to a different version of your app. See [Debugging](/debugging/runtime-issue/) guide for more information. > **warning** We do not recommend this method or modifying these **android** and **ios** directories directly, especially when creating a development build with EAS Build. For more information, see [Prebuild](/workflow/prebuild/). If you need to debug native code or you prefer to manage your native projects and run the locally before creating a development build, you can use `npx expo run` commands. You'll need to set up or have access to Android Studio, Xcode, and related dependencies on your local computer. The [`npx expo run` commands](/workflow/expo-cli/#compiling) will create a new build, install it on your emulator/simulator or device, and start running it. To build and run on an emulator: To build and run on a connected device: To build and run on a simulator: To build and run on a connected device: Running the above commands generates native source code in their corresponding **android** and **ios** directories. ## Next step