I have a question about expo-updates. Lately we’ve added some breaking API changes on our backend and published supporting these changes JS via expo-updates at the same time. For most of our users things went well and they haven’t noticed anything. But for some we saw errors like they were trying to use old API (looks like they hadn’t received the update from Expo in several hours after the update).
In our frontend code we check for updates every time the app comes from background. The fact that updates were not received in several hours after publishing to expo is weird, because users should put the app to background in such a long time. I assume that Updates.checkForUpdateAsync failed because of the network or something like this. But still it’s little bit suspicious, because quite a lot of users faced the problem.
Are there any way how we can subscribe to the updates from Expo? If not, is it 100% that when expo publish completes checkForUpdateAsync() will return { isAvailable: true } and new update might be received via Updates.fetchUpdateAsync?
But actually I would not count not OTA Updates for breaking changes.
You cannot count on that it is always 100% sure that all Users get the Updated when you do a publish.
Had the same issues and started rolling out breaking changes only via AppStore Update
If I’m not mistaken, Updates.addListener could let you know when an update is already downloaded on the phone (if you’ve set EXUpdatesCheckOnLaunch in your build) and ready to be launched. So still the updates are being checked only on the app start. Please correct me if I’m wrong.
I want to do a different thing - when a new update is available on the server immediately download and start it.
Ship breaking changes only with new binaries is cool, but still you have to support different api versions, which is not handy sometimes.
Well yes downloaded on the Phone but not reloaded - You are right. But maybe it could als mean that updates will be downloaded while the user has opened the app.
Thats not quite clear in the documentation.
Yes I totally agree, that supporting different api versions in tricky.