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.
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.