1--- 2title: Getting started 3--- 4 5import { Terminal } from '~/ui/components/Snippet'; 6 7Setting up EAS Update allows you to push critical bug fixes and improvements that your users need right away. 8 9## Prerequisites 10 11EAS Update requires the following versions or greater: 12 13- Expo CLI >= 5.3.0 14- EAS CLI >= 0.50.0 15- Expo SDK >= 45.0.0 16- expo-updates >= 0.13.0 17 18## Install Expo CLI and EAS CLI 19 20Install EAS and Expo CLIs by running: 21 22<Terminal cmd={['$ npm install --global eas-cli expo-cli']} /> 23 24## Create an Expo account 25 261. Create an account at [https://expo.dev/signup](https://expo.dev/signup) 272. Then, log in with EAS CLI: 28 29 <Terminal cmd={['$ eas login']} /> 30 313. After logging in, you can verify the logged-in account with `eas whoami`. 32 33## Create a project 34 35Create a project by running: 36 37<Terminal cmd={['$ npx create-expo-app']} /> 38 39## Configure your project 40 41To configure your project, run the following commands in the order they are specified: 42 43<Terminal 44 cmd={[ 45 '# Install the latest `expo-updates` library', 46 '$ npx expo install expo-updates', 47 '', 48 '# Initialize your project with EAS Update', 49 '$ eas update:configure', 50 '', 51 '# Set up the configuration file for builds', 52 '$ eas build:configure', 53 ]} 54 cmdCopy="expo install expo-updates && eas update:configure && eas build:configure" 55/> 56 57After running these commands, **eas.json** file will be created in the root directory of your project. 58 59Inside the `preview` and `production` build profiles in **eas.json**, add a `channel` property for each: 60 61```json 62{ 63 "build": { 64 "preview": { 65 "channel": "preview" 66 // ... 67 }, 68 "production": { 69 "channel": "production" 70 // ... 71 } 72 } 73} 74``` 75 76The `channel` allows you to point updates at builds. For example, if we set up a GitHub Action to publish changes on merge, it will make it so that we can merge code into the "production" Git branch. Then, each commit will trigger a GitHub Action that will publish an update that will be available to builds with the channel "production". 77 78**Optional**: If your project is a bare React Native project, see [Updating bare app](/bare/updating-your-app) for any additional configuration. 79 80## Create a build for the project 81 82Next, we'll need to create a build for Android or iOS. [Learn more](/build/setup). 83 84We recommend creating a build with the `preview` build profile first. [Learn more](/build/internal-distribution) about setting up your devices for internal distribution. 85 86Once you have a build running on your device or in a simulator, we'll be ready to send it an update. 87 88## Make changes locally 89 90Once we've created a build, we're ready to iterate on our project. Start a local development server with: 91 92<Terminal cmd={['$ yarn start', '# or', '$ npx expo start']} /> 93 94Then, make any desired changes to your project's JavaScript, styling, or image assets. 95 96## Publish an update 97 98Now we're ready to publish an update to the build created in the previous step. 99 100Then publish an update with the following command: 101 102```bash 103eas update --branch [branch] --message [message] 104 105# Example 106eas update --branch preview --message "Updating the app" 107``` 108 109Once the update is built and uploaded to EAS and the command completes, force close and reopen your app up to two times to download and view the update. 110 111## Next 112 113You can publish updates continuously with GitHub Actions. Learn more: [Using GitHub Actions with EAS Update](/eas-update/github-actions) 114