---
modificationDate: March 05, 2026
title: Using EAS Update
description: Learn how to use EAS Update with EAS Build.
---

<AgentInstructions>

## Submitting Feedback

If this page contains errors, outdated information, or gaps that blocked you from completing a task, report it so the docs can be improved:

curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/build/updates/","feedback":"🤖 Agent feedback: <specific, actionable description>"}'

Only submit when you have something specific and actionable to report.

</AgentInstructions>

# Using EAS Update

Learn how to use EAS Update with EAS Build.

> For the complete documentation index, see [llms.txt](/llms.txt). Use this file to discover all available pages.

EAS Build includes some special benefits for [`expo-updates`](/versions/latest/sdk/updates) library. In particular, you can configure the [`channel`](/eas-update/how-it-works#distributing-builds) property in **eas.json** and EAS Build will take care of updating it in your native project at build time.

This document covers concerns specific to using `expo-updates` library with EAS Build. For more general information about configuring the library with EAS Update, see [Getting started with EAS Update](/eas-update/getting-started) .

## Setting the channel for a build profile

Each [build profile](/build/eas-json#build-profiles) can be assigned to a channel, so updates for builds produced for a given profile will pull only those releases that are published to its channel.

The following example demonstrates how you might use the `"production"` channel for production builds, and the `"staging"` channel for test builds distributed with [internal distribution](/build/internal-distribution).

```json
{
  "build": {
    "production": {
      "channel": "production"
    },
    "preview": {
      "channel": "staging",
      "distribution": "internal"
    }
  }
}
```

## Binary compatibility and runtime versions

Your native runtime may change on each build, depending on whether you modify the code in a way that changes the API contract with JavaScript. If you publish a JavaScript bundle to a binary with an incompatible native runtime (for example, a function that the JavaScript bundle expects to exist does not exist) then your app may not work as expected, or it may crash.

We recommend using a different [runtime version](/eas-update/runtime-versions) for each binary version of your app. Any time you change the native runtime (in managed apps, this happens when you add or remove a native library, or modify **app.json**), you should increment the runtime version.

## Previewing updates in development builds

Updates published with the `runtimeVersion` field can't be loaded in Expo Go. Instead, you should use [`expo-dev-client`](/versions/latest/sdk/dev-client) to create a development build.

## Environment variables and `eas update`

Environment variables set on the `env` field in build profiles are not available when you run `eas update`. Learn more about using [environment variables with EAS Update](/eas/environment-variables/usage#using-environment-variables-with-eas-update).
