In this lesson, you’ll learn how to bypass the traditional App Store review cycle by pushing code changes directly to your users’ devices via Over-the-Air (OTA) updates.
The "App Store Bottleneck"
When you build a React Native app, your JavaScript code is bundled into a file that the app executes. Typically, if you find a typo or a minor bug and want to fix it, you would have to submit a new version to the Apple App Store or Google Play Store. These platforms require a review process that can take hours or even days. OTA updates allow you to change that JavaScript bundle without requiring the user to download a new version of the app from the store.
How It Works
Think of your app as having two parts: the "Native Shell" (the compiled binary code like your splash screen, permissions, and app icon) and the "JavaScript Bundle" (your business logic and UI components).
OTA updates only replace the JavaScript Bundle. When the app launches, it can reach out to a server, check if a newer bundle exists, download it, and swap it out for the next time the app opens.
Here is a conceptual view of how you might configure your app.json (the Expo config file we studied earlier) to support this:
{
"updates": {
"url": "https://u.expo.dev/your-project-id",
"enabled": true,
"checkAutomatically": "ON_LOAD"
}
}
By setting checkAutomatically to ON_LOAD, your app will ping the server every time it starts. If you have deployed a hotfix to the Expo servers, the app will silently download it, ensuring your users are always running the most recent version of your logic without ever visiting the App Store.
Important Boundaries
It is critical to remember that OTA updates cannot modify native code. If you update your ios/ or android/ folders (such as adding a new native library that requires npx expo prebuild), you must submit a new binary to the App Store. OTA updates are strictly for the JavaScript layer of your application.
Key Takeaway: Over-the-Air updates allow you to instantly deploy JavaScript hotfixes to your users, bypassing the App Store review process for anything that doesn’t require changes to the native binary.