1--- 2title: Create a development build 3description: Learn how to create development builds for a project. 4sidebar_title: Create a build 5--- 6 7import { Terminal } from '~/ui/components/Snippet'; 8import { Tab, Tabs } from '~/ui/components/Tabs'; 9import { BoxLink } from '~/ui/components/BoxLink'; 10import { Step } from '~/ui/components/Step'; 11import ImageSpotlight from '~/components/plugins/ImageSpotlight'; 12import Video from '~/components/plugins/Video'; 13import { BookOpen02Icon } from '@expo/styleguide-icons'; 14 15Development builds can be created with [EAS Build](/build/introduction/) or [locally](/guides/local-app-development/) on your computer if you have Android Studio and Xcode installed. 16 17<Video url="https://www.youtube.com/embed/LUFHXsBcW6w" /> 18 19In this guide, you'll find information on how to create a development build and then install it on an emulator/simulator or a physical device to continue developing your app. 20 21<Step label="1"> 22 23## Initialize EAS Build 24 25We recommend EAS Build to manage your native projects. It allows a smooth experience, especially if you do not have experience with Xcode and Android studio builds or do not have them installed locally on your computer. 26 27EAS Build is created by running the `eas build` command. It also creates an [**eas.json**](/build/eas-json/) file at the root of your project directory with three build profiles automatically: `development`, `preview` and `production`. A minimal configuration is shown below: 28 29```json eas.json 30{ 31 "build": { 32 "development": { 33 "developmentClient": true, 34 "distribution": "internal" 35 }, 36 "preview": { 37 "distribution": "internal" 38 }, 39 "production": {} 40 } 41} 42``` 43 44The `development` profile sets the following options: 45 46- [`developmentClient`](/build-reference/eas-json/#developmentclient) to `true` to create a Debug build. This allows the `expo-dev-client` library to choose the update to load in your app and provide tools to help you develop it. It also generates a build artifact that you can install on a device or emulator/simulator. 47- [`distribution`](/build-reference/eas-json/#distribution) to `internal` makes the build ready for [internal distribution](/build/internal-distribution/). 48 49> iOS builds where `developmentClient` is set to `true` on the build profile should always be distributed as `internal`. If you are distributing for TestFlight, you have to set the distribution to `store`. 50 51</Step> 52 53<Step label="2"> 54 55## Create a build for emulator/simulator 56 57Follow the steps below to create and install the development build on an Android Emulator or an iOS Simulator. 58 59> This is only required if you want to develop a project on an emulator/simulator. Otherwise, skip these steps if you are using a device. 60 61Each platform has specific instructions you'll have to follow: 62 63<Tabs tabs={["For Android Emulator", "For iOS Simulator"]}> 64 65<Tab> 66 67To create and install the development build on an Android Emulator, you will need an **.apk**. To create it, run the following command: 68 69<Terminal cmd={['$ eas build --profile development --platform android']} /> 70 71After the build is complete, the CLI will prompt you to automatically download and install it on the Android Emulator. When prompted, press <kbd>Y</kbd> to directly install it on the emulator. 72 73See [Build APKs for Android Emulators and devices](/build-reference/apk/#installing-your-build) for more information. 74 75</Tab> 76 77<Tab> 78 79To create and install a development build on an iOS Simulator, we recommend you create a separate [build profile](/build/eas-json/#build-profiles) for the simulator and then set the `ios.simulator` option to `true` in the **eas.json**. 80 81For example, the `development-simulator` profile below is only for creating a development build for iOS Simulator: 82 83```json eas.json 84{ 85 "build": { 86 "development-simulator": { 87 "developmentClient": true, 88 "distribution": "internal", 89 "ios": { 90 "simulator": true 91 } 92 } 93 } 94} 95``` 96 97Then, run the following command to create the development build on an iOS Simulator: 98 99<Terminal cmd={['$ eas build --profile development-simulator --platform ios']} /> 100 101After the build is complete, the CLI will prompt you to automatically download and install it on the iOS Simulator. When prompted, press <kbd>Y</kbd> to directly install it on the simulator. 102 103See [Installing build on the simulator](/build-reference/simulators/#installing-build-on-the-simulator) for more information. 104 105</Tab> 106 107</Tabs> 108 109</Step> 110 111<Step label="3"> 112 113## Create a build for the device 114 115Follow the steps below to create and install the development build on an Android or an iOS device. Each platform has specific instructions you'll have to follow: 116 117<Tabs tabs={["For Android device", "For iOS device"]}> 118 119<Tab> 120 121> If you have created a development build for Android Emulator, you do not need to create it separately for the device. You can skip this step since the same **.apk** will work in both scenarios. 122 123To create and install the development build on an Android device, you will need a **.apk**. To create it, run the following command: 124 125<Terminal cmd={['$ eas build --profile development --platform android']} /> 126 127After the build is complete, copy the URL to the **.apk** from the build details page or the link provided when `eas build` has finished. Then, send that URL to your device and open it on your device to download and install the **.apk**. 128 129</Tab> 130 131<Tab> 132 133> **warning** Apple Developer membership is required to create and install a development build on an iOS device. 134 135To register any iOS device you'd like to develop onto your [ad hoc provisioning profile](/build/internal-distribution/#22-configure-app-signing-credentials-for-ios), run the following command: 136 137<Terminal cmd={['$ eas device:create']} /> 138 139After registering your iOS device, you can create the development build by running the command: 140 141<Terminal cmd={['$ eas build --profile development --platform ios']} /> 142 143> Devices running iOS 16 and above require enabling a special OS-level Developer Mode to install development builds. If you don't have this setting enabled or are installing your first development build on your device, see [iOS Developer Mode](/guides/ios-developer-mode/) to enable it. 144 145After the build is complete, you can download it on your iOS device by scanning the QR code from the device's camera from the Expo CLI. The QR code is provided when the `eas build` command has finished running. 146 147You can also find this QR code on the build page in the [Expo dashboard](https://expo.dev/accounts/[account]/projects/[project]/builds). Click the **Install** button and scan the QR code using the system's camera. 148 149</Tab> 150 151</Tabs> 152 153</Step> 154 155## Next step 156 157<BoxLink 158 title="Share with your team" 159 description="Learn about how you can install and share a development build with your team or run it on multiple devices." 160 href="/develop/development-builds/share-with-your-team" 161 Icon={BookOpen02Icon} 162/> 163