1--- 2title: Use expo-dev-client with EAS Update 3sidebar_title: Use expo-dev-client 4description: Learn how to use the expo-dev-client library to preview a published EAS Update inside a development build. 5--- 6 7import { Step } from '~/ui/components/Step'; 8import { BoxLink } from '~/ui/components/BoxLink'; 9import { GithubIcon } from '@expo/styleguide-icons'; 10import ImageSpotlight from '~/components/plugins/ImageSpotlight'; 11 12> **warning** This guide is likely to change as we continue to work on EAS Update. 13 14The [`expo-dev-client`](/develop/development-builds/introduction/) library allows launching different versions of a project. One of the most popular use cases is to preview a published update inside a development build using the `expo-dev-client` library. 15 16It supports loading published EAS Updates through channels. In this guide, you'll learn how to load a specific channel to preview an update in a development build. 17 18## How to load a published EAS Update inside a development build 19 20<Step label="1"> 21 22Create a [development build](/develop/development-builds/create-a-build) of the project. 23 24</Step> 25 26<Step label="2"> 27 28Make non-native changes locally, then publish them using `eas update --branch ...`. The branch specified should correspond to a channel. You can see how channels are linked to branches with `eas channel:list`. 29 30</Step> 31 32<Step label="3"> 33 34After publishing an update, it's time to load the update in the development build. All development builds that have the `expo-updates` package installed include an Extensions tab where you can select an update: 35 36<ImageSpotlight 37 alt="Extensions tab in the Expo dev client." 38 src="/static/images/dev-client/extensions-panel.png" 39 style={{ maxWidth: 300 }} 40/> 41 42Alternatively, you can construct a specific URL to open your EAS Update. The URL will look like this: 43 44```bash 45exp+[project-slug]://expo-development-client/?url=[https://u.expo.dev/project-id]?channel-name=[channel] 46 47# Example 48exp+form-duo://expo-development-client/?url=https://u.expo.dev/675cb1f0-fa3c-11e8-ac99-6374d9643cb2?channel-name=preview 49``` 50 51Let's break down the parts of this URL: 52 53- `exp+`: The beginning of the URL. 54- `form-duo`: This is the project slug found in **app.json**/**app.config.js**. 55- `://expo-development-client/`: necessary for the deep link to work with the `expo-dev-client` library. 56- `?url=`: Defines a `url` query parameter. 57- `https://u.expo.dev/675cb1f0-fa3c-11e8-ac99-6374d9643cb2`: This is the updates URL, which is inside the project's app config (**app.json**/**app.config.js**) under `updates.url`. 58- `?channel-name=`: Defines a channel query parameter. 59- `preview`: The name of the channel to request. 60 61</Step> 62 63<Step label="4"> 64 65Once we've constructed the URL, we can either copy/paste it directly into the `expo-dev-client`'s launcher screen. Alternatively, we could create a QR code of the URL, then scan it. Scanning this URL should open up the development build to the specified channel. 66 67</Step> 68 69## More 70 71<BoxLink 72 title="Working example" 73 description="See a working example on using expo-dev-client with EAS Update." 74 Icon={GithubIcon} 75 href="https://github.com/jonsamp/test-expo-dev-client-eas-update" 76/> 77