React Native · Mobile UI at native speed
How do over-the-air updates work and what are the risks?
Short answer
OTA updates ship JavaScript and assets without a store release, usually through EAS Update or a self-hosted service. They cannot change native code, and every update needs versioning, signing, rollback and store-policy compliance.
An OTA system downloads a new JS bundle and asset set at runtime. The app loads that bundle instead of the one embedded at build time. This is useful for content fixes, small bugs and feature flags, but it does not replace the native binary.
Rules that keep OTA safe
- Only ship JavaScript and assets the current native binary can support
- Match updates to a runtime version so a bundle never loads on an incompatible build
- Sign updates and verify signatures on the client
- Roll out gradually and monitor crash and error rates
- Keep a rollback path, including a known-good embedded bundle
- Follow store policies; OTA must not change the app's primary purpose
# Example with EAS Update
eas update --branch production --message "Fix checkout validation"
# Publish a rollback to the previous known-good update
eas update:republish --group <update-group-id> --branch productionMicrosoft retired App Center CodePush in 2025, so teams using it need a migration path to EAS Update, a self-hosted server or another supported service. The underlying constraints are the same regardless of vendor.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1What can and cannot be changed with an OTA update?
- 2How do you roll back a bad update?
- 3What is a runtime version?
- 4Why is signing an OTA update important?
Say it in the interview
OTA updates replace the JavaScript bundle and assets at runtime, so they fix JS bugs without a store release, but they cannot change native code. I pin updates to a runtime version, sign them, roll out gradually and keep a known-good bundle for rollback. I also treat store policy as a hard constraint, because OTA is not a way to ship a different app.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live React Native mock interview and get scored feedback on depth, clarity and confidence.