Hey all,
I’m experiencing a weird issue with an OTA update. I have an app in the app stores, let’s call it version 1.0.0. I recently pushed an OTA update with minor string changes, but these changes aren’t reflected in the app until after a restart IN SPITE of the version number being correct.
Simplified, I did 2 things that were not reflected:
- Removed the subtitle in a view
<Text>Title</Text>
<Text>Subtitle</Text>
<Text>Main text</Text>
I removed the middle tag (subtitle) in the update
- Changed a ‘wrong-login-creds’ string on the loginscreen from ‘wrong email and/or password’ to ‘wrong username and/or password’.
To be clear, here are some steps:
- User downloads app from app store, version 1.0.0 (visible on loginscreen, shown using
Constants.manifest
) - User opens app, sees old strings and version 1.0.0
- User restarts app to apply update, verifies new version number (1.0.1), but the string changes are not applied
- User restarts app again, and this time both the version number and string changes are updated
I can consistently reproduce the problem following the steps above across 4 different iOS devices. Android works as expected.
Step 4 should not be necessary, as far as I understand. I’m really confused as to how it is possible for the app manifest to be updated without also applying the changes. It was my understanding that during step 2 where Expo checks for a new bundle on the CDN and downloads it, that it would apply the whole bundle as an update to the javascript VM, and not do it gradually or partially. Can someone explain the process that can lead to this problem?
It’s worth noting that I’m using "loadJSInBackgroundExperimental": true
in app.json, and that I updated both version
, expoBuildNumber
, buildNumber
(iOS) and versionCode
(android) before pushing the OTA update.