I'm using Expo.io for publishing my over-the-air updates. I have submitted several new official updates (so new SDK/IPA files) to the App and Play store. I'm still using the same version of Expo as before. Will my over the air updates go out to the previous versions(people haven't gotten the offical app/play store update)? Or are the old versions stuck until the user manually updates to the latest version so that they can get OTA updates again?
3 Answers
If you upload a new build to the app store and play store, the user will need to download the build in order to get OTA updates for that build. If you just build and push to the expo server, the user will be able to get OTA updates without any download.
The standalone app knows to look for updates at your app's published url.
From the documentation : Publishing Guide
When you build the binary, the current version of your app JavaScript is bundled so that it loads immediately the first time the app opens. But you’re not stuck with that version of your code, you can publish updates at any time after that without needing to re-build the binary. For example, if you find a bug or want to add some functionality to the app after submitting the binary.
The standalone app knows to look for updates at your app’s published url, and if you publish an update then the next time a user opens your app they will automatically download the new version. These are commonly referred to as “Over the Air” (OTA) updates, the functionality is similar to CodePush, but it is built into Expo so you don’t need to install anything.

- 5,570
- 3
- 23
- 39
Core expo team member @ide answered your question in this comment:
The way Expo, the publishing system, and versions work is this:
The Expo client and standalone apps support multiple SDK versions (ex: 18, 17, 16, 15). When you publish your project, the Expo server saves your project bundle and the "sdkVersion" value in exp.json or app.json. When the Expo client loads your project, the server sends back the latest bundle with the greatest SDK version that your client supports. So if your client supports SDKs 15 through 18 and you've published your project with SDK 15 and SDK 16, the server will send back the latest bundle for SDK 16.
So if you had published your project with SDK 16 before but then went back to SDK 15, any client that supports SDK 16 would still receive the old SDK 16 bundle.

- 513
- 1
- 5
- 16
The old Play Store versions will still get OTA (exp publish
) updates as long as the published URL hasn't changed, which you can set in your app.json
. This is because that URL is hardcoded into the native code (it's in MainActivity.java
for Android).
Your published URL will be expo.io/@your-username/slug
. From app.json
's documentation:
slug
Required. The friendly url name for publishing. eg:
expo.io/@your-username/slug
.

- 1
- 1

- 345
- 1
- 3
- 12