Fast Fixes: Using Expo Updates for OTA Patches
Learn how to ship critical bug fixes instantly with Expo Updates and EAS, avoiding the app store review cycle.
Insight
Expo's expo-updates module lets you push JavaScript and asset changes over‑the‑air (OTA) without resubmitting to the App Store or Play Store. By pairing it with EAS Build, you can generate a signed update bundle that the client checks at launch (or on demand). This is ideal for hot‑fixes, feature toggles, or A/B experiments, but remember that native code changes still require a store release.
Example
import * as Updates from 'expo-updates';
import { Button } from 'react-native';
export default function UpdateButton() {
const checkForUpdate = async () => {
const { isAvailable } = await Updates.checkForUpdateAsync();
if (isAvailable) await Updates.fetchUpdateAsync();
// Reload to apply the new bundle
await Updates.reloadAsync();
};
return <Button title="Check for OTA" onPress={checkForUpdate} />;
}
Takeaway
Enable OTA updates in your app.json ("updates": { "fallbackToCacheTimeout": 0 }) and use checkForUpdateAsync sparingly to avoid draining battery. Treat OTA as a rapid‑response layer for JS‑only changes; any native module or SDK bump still goes through the traditional store flow.