What EAS Update Does
When your app is running on a user's device, it can check an Expo-hosted endpoint for updates to its JavaScript bundle. If there is a newer bundle, it downloads it in the background and applies it on the next launch. This means you can fix a typo, update a screen, change a price - and all users get it within hours without any action on their part.
Setting Up EAS Update
Install EAS CLI with npm install -g eas-cli. Log in with eas login. Run eas update:configure in your project. This adds the necessary expo-updates dependency and updates your app.json. Then run eas build to create a build that points to your EAS channel. After that, shipping an update is one command: eas update --channel production --message 'fixed login bug'.
Channels and Branches
EAS Update uses channels to route updates to specific builds. A production channel reaches users who installed your store build. A preview channel reaches testers. You can have as many channels as you need. This lets you test an update with internal testers on a preview build before rolling it to all production users - the same pattern CI/CD engineers use for web deploys.
When Not to Use OTA Updates
Apple's App Store guidelines prohibit using OTA updates to change the primary function of an app or add major features without review. In practice this means: bug fixes and content updates are fine, adding a whole new tab or feature is a gray area, and changing your app's core purpose is prohibited. Follow the principle - do not use OTA to sneak features past review.
Short, practical drops on app ideas, validating fast, store listings, and passing app review. No spam, unsubscribe anytime.
Frequently asked questions
How long does an EAS Update take to reach users?
The update is available immediately after you run the command. Users get it the next time they open the app (it checks on launch). If they leave the app open for extended periods, it may take longer to apply.
Does EAS Update work on both iOS and Android?
Yes. It works on both platforms as long as you build with Expo and have expo-updates configured.
What happens if an OTA update breaks something?
You can roll back by running eas update:rollback to revert to the previous published update. Users will get the previous bundle on their next launch. This makes OTA updates much less risky than traditional store submissions.
Is there a size limit on OTA updates?
There is no hard-coded size limit, but larger updates take longer to download on slow connections. Keep your JS bundles lean and use CDN-hosted assets for images rather than bundling them if size is a concern.
Last reviewed by David on July 31, 2026


