1---
2title: Build configuration process
3sidebar_title: Configuration process
4description: Learn how EAS CLI configures a project for EAS Build.
5hideTOC: true
6---
7
8import ImageSpotlight from '~/components/plugins/ImageSpotlight';
9import { Step } from '~/ui/components/Step';
10
11In this guide, you will learn what happens when EAS CLI configures your project with `eas build:configure` (or `eas build` - which runs this same process if the project is not yet configured).
12
13EAS CLI performs the following steps when configuring your project:
14
15<Step label="1">
16## Ask you about the platform(s) to configure
17
18If you only want to use EAS Build for a single platform, that's fine. If you change your mind, you can come back and configure the other later.
19
20<ImageSpotlight
21  alt="Terminal running eas build command with platform Android and iOS options available"
22  src="/static/images/eas-build/configure/01-configure-platform.png"
23  containerStyle={{ paddingBottom: 0 }}
24/>
25
26</Step>
27
28<Step label="2">
29## Create eas.json
30
31The command will create an **eas.json** file in the root directory with the default configuration. It looks something like this:
32
33```json eas.json
34{
35  "build": {
36    "development": {
37      "developmentClient": true,
38      "distribution": "internal"
39    },
40    "preview": {
41      "distribution": "internal"
42    },
43    "production": {}
44  }
45}
46```
47
48If you have a bare project, it will look a bit different.
49
50This is your EAS Build configuration. It defines three build profiles named `"development"`, `"preview"`, and `"production"` (you can have multiple build profiles like `"production"`, `"debug"`, `"testing"`, and so on) for each platform. If you want to learn more about **eas.json** see the [Configuration with **eas.json**](/build/eas-json) page.
51
52</Step>
53
54<Step label="3">
55## Configure the project
56
57This step varies depending on the project type you have.
58
59<Step label="3.1">
60### Managed project
61
62If you haven't configured your **app.json** with `android.package` and/or `ios.bundleIdentifier` yet, EAS CLI will prompt you to specify them.
63
64- `android.package` will be used as the Android application id which is used to identify your app on the Google Play Store
65- `ios.bundleIdentifier` will be used to identify you app on the Apple App Store
66
67<ImageSpotlight
68  alt="Application identifier prompts in eas build:configure"
69  src="/static/images/eas-build/configure/02-configure-app-ids.png"
70  containerStyle={{ paddingBottom: 0 }}
71/>
72
73In the example above, we defined exactly the same Android application id and iOS bundle identifier. However, they don't need to match.
74
75</Step>
76
77<Step label="3.2">
78### Bare project
79
80There are no additional steps for bare workflow projects.
81
82</Step>
83
84</Step>
85
86<Step label="4">
87## Next steps
88
89That's all there is to configuring a project to be compatible with EAS Build.
90There is one final step if you set `cli.requireCommit` to `true` in your **eas.json** — you'll be prompted to commit all the changes we made for you. You can choose to review them before committing, and you can either specify the git commit message or use a default message.
91
92<ImageSpotlight
93  alt="Application identifier prompts in eas build:configure"
94  src="/static/images/eas-build/configure/03-next-steps.png"
95  containerStyle={{ paddingBottom: 0 }}
96/>
97
98</Step>
99