~/swaraj.dev
Back to all posts
March 24, 20261 min read

Over-the-Air Updates with Expo EAS Update: A Quick Guide

Learn how to enable seamless OTA patches in Expo apps using EAS Update, and why it beats the old expo-updates workflow.

expoeasupdatesotareact-native

Insight

Expo's EAS Update service replaces the legacy expo-updates approach with a more reliable, version‑aware OTA pipeline. It lets you push JavaScript and asset changes without resubmitting to the stores, while respecting the runtime version you declare. Unlike manual update checks, EAS Update can be configured to fetch updates only on a quiet network, reducing user‑impact and battery drain.

Example

// eas.json – define runtime version and update channel
{
  "build": { "production": { "runtimeVersion": "1.0.0" } },
  "submit": { "production": { "channel": "stable" } }
}
// In your app entry point
import * as Updates from 'expo-updates';

useEffect(() => {
  if (!Updates.isEmbeddedLaunch) {
    Updates.checkForUpdateAsync().then(async res => {
      if (res.isAvailable) await Updates.fetchUpdateAsync();
      await Updates.reloadAsync();
    });
  }
}, []);

Takeaway

Configure a single runtimeVersion and channel in eas.json; then let expo-updates handle the rest. This gives you instant bug fixes while keeping the user experience smooth and predictable.