Check out Expo release channels.
When you build your standalone apps to iOS or Android it binds that build to whatever release channel was specified. It is set to default channel by default.
You can build your apps to a specific channel by running:
expo build:ios --release-channel <your-channel>
expo build:android --release-channel <your-channel>
Then, when you want to publish to that release channel you do so by running:
expo publish --release-channel <your-channel>
Expo Documentation
docs.expo.dev โบ bare โบ updating-your-app
Use EAS Update in an existing project
August 4, 2022 - If you are already signed in to an Expo account using Expo CLI, you can skip the steps described in this section. If you are not, run the following command to log in: ... You can check whether you are logged in by running eas whoami. ... The eas update:configure command will update your app.json file with the runtimeVersion and updates.url properties, and add the extra.eas.projectId field if your project wasn't using any EAS services previously.
Expo "Over The Air Update" Is Awesome
It's crazy expensive, I'd only ever push an update there in an emergency More on reddit.com
CodePush vs Expo OTA
I was once looking for Codepush vs Expo OTA, went ahead with Expo OTA and have nothing but praises for it. If you're just trying out, go for Expo OTA. More likely than not, it does everything you'd need. Quick to setup & try. However there's this thing that the app is updated on the second launch, or you have to force relaunch the app to update. If it is something that would affect you, & if CodePush solves this, feel free to go with that. More on reddit.com
I have a question about Expo OTA updates and app version
This is a solid question! Why not just push an update prompt so users can open the app -> see the update prompt -> update the app instead of updating version 1.0 ? More on reddit.com
How are you handling the frequent Expo OTA Update for your app?
There are various ways to handle this depending on your preference; you can set up an alert to launch on login to prompt the user to update the app ( Can be mandatory or optional). You can set up a banner to alert the user of updates while still using the old version. You can set up mandatory updates without any alert this will cause the app to relaunch immediately but only once when the app detects the update. For breaking changes i use Firebase configs to trigger mandatory updates using minimum supported versions for the app.This works well as configs are detected almost instantly through firebase. This are all the known ways i am aware of and use More on reddit.com
Videos
02:42
When to use over the air updates | Three important OTA use cases ...
09:06
How to use over the air updates to share previews with your team ...
42:53
Sending Over-the-Air (OTA) Updates with EAS Update | Step-by-Step ...
02:24
EAS Update + Github = Automatic OTA updates | Live Expo Demo - YouTube
npm
npmjs.com โบ package โบ expo-updates
expo-updates - npm
ยป npm install expo-updates
Published ย Jul 08, 2025
Version ย 0.28.17
Author ย 650 Industries, Inc.
Repository ย https://github.com/expo/expo
GitHub
github.com โบ expo โบ expo โบ discussions โบ 17230
OTA update fetched by EAS dev client but not installed on reload ยท expo/expo ยท Discussion #17230
Update is a hosted service that serves updates for projects using the expo-updates library. refer below mentioned official link ยท however i am also facing same issue while migrated from classic build system, eas is not updating ota client side
Author ย expo
Reddit
reddit.com โบ r/reactnative โบ expo "over the air update" is awesome
r/reactnative on Reddit: Expo "Over The Air Update" Is Awesome
September 22, 2024 -
Just tired and implemented the expo OTA. It's great and I really enjoyed. This one reason is enough for me to prefer it over Flutter. ๐
Top answer 1 of 5
14
It's crazy expensive, I'd only ever push an update there in an emergency
2 of 5
9
OTAโs are great but remember these take an initial app launch to download, and another app launch to kick in (I.e first time installs from the App Store wonโt have the OTA yet ) You can delay the UI and relaunch the app manually after it downloads but depending on the devices network, this can take 30 seconds and destroy a very important part of the mobile-apps UX ( it can also fail to download for xyz reasons ) TLDR: over the air updates are awesome but binary updates are preferred in 95% of enterprise use cases
GitHub
github.com โบ axelmarciano โบ expo-open-ota
GitHub - axelmarciano/expo-open-ota: An open-source self-hosted custom updates server implementing the Expo Updates protocol, built for production. Supports cloud storage & CDN.
๐ An open-source Go implementation of the Expo Updates protocol, designed for production with support for cloud storage like S3 and CDN integration, delivering fast and reliable OTA updates for React Native apps.
Starred by 176 users
Forked by 23 users
Languages ย Go 46.1% | TypeScript 39.1% | MDX 10.5% | JavaScript 2.5% | CSS 1.1% | Smarty 0.3%
GitHub
github.com โบ xavia-io โบ xavia-ota
GitHub - xavia-io/xavia-ota: A self-hosted Over-The-Air (OTA) updates server for Expo/RN applications that gives you complete control over your app's update distribution.
A self-hosted Over-The-Air (OTA) updates server for Expo/RN applications that gives you complete control over your app's update distribution. - GitHub - xavia-io/xavia-ota: A self-hosted Over-The-Air (OTA) updates server for Expo/RN applications ...
Starred by 368 users
Forked by 48 users
Languages ย TypeScript 94.6% | Shell 2.4% | JavaScript 2.2%
Reddit
reddit.com โบ r โบ reactjs โบ comments โบ 1idzhhp โบ expo_open_ota_opensource_alternative_for
Expo Open OTA - Alternative open source pour l'auto- ...
We cannot provide a description for this page right now