We've been having similar problems. I can see two things which might be causing this in your case:
- Check in
app.jsonifupdates.fallbackToCacheTimeoutis set. If it's set, that's how long expo will try to download the latest update before showing the last downloaded version (which will be the initial version after initial download). - If you have a large update, expo will try downloading the update for 30s before showing the last version of your app.
Check here for more info: https://docs.expo.io/versions/latest/guides/configuring-ota-updates/
OTA updates do not replace the version downloaded from the app store, they are stored first in the device's cache before being run on app start after download. Source https://docs.expo.io/versions/latest/sdk/updates/
Update downloads are automatically triggered on app start, then, depending on the settings it will either wait (as long as updates.fallbackToCacheTimeout allows) before showing the app, or show it immediately.
You can force the app to run the latest update (if you have one waiting) by just force quitting the app, then restarting.
Hope this helps!
Answer from Jacob Sievers on Stack OverflowVideos
Hi
In my eas.json, I have this under build:
"production": {
"channel": "production",
"distribution": "store",
"environment": "production",
"autoIncrement": true,
"ios": {
"simulator": false
}
}I have a question about OTA updates.
Let's say I have an app version 1.0.0 and some users are using it. Then I upload a new version 2.0.0 and some users update and use it (so now I have users using 2 different versions).
How can I send an update to the ones on the older version since all the users are on the same production channel? Is there any way to send an OTA update to the users on one version and not the others?
Thanks