The build server uses the currently published bundle to build the app (at least last time I had this issue). I once had a similar issue because I had only made changes to the app.json file, and didn’t need it published. So I was doing builds using the --no-publish flag. This basically meant I was building the same IPA/APK over and over again with the old code.
Another thing to check is if your current binary using the same release channel that your publishing too? Otherwise you aren’t updating the live app, you’re updating a different channel all together.
https://docs.expo.io/versions/v32.0.0/distribution/release-channels/
Also, if you currently approved binary was build on a different SDK than you are publishing with, it will not update. You’ll need to make and submit a new binary using the new SDK, and you should be good.
There’s also a timeout interval that you can set in app.json.
https://docs.expo.io/versions/v32.0.0/workflow/configuration/#updates
{
"expo": {
"updates": {
"fallbackToCacheTimeout": 15000
}
}
}
It’s in milliseconds (15 seconds above). If that is set to 0, then no matter what on first launch it will launch with the code the binary was built with. Only on the next launch (from terminated) will it update.
Last resort, there’s an Updates SDK you can look at:
https://docs.expo.io/versions/v32.0.0/sdk/updates/
Something like:
const update = await Expo.Updates.checkForUpdateAsync();
if (update.isAvailable) {
// do stuff, see: await Expo.Updates.fetchUpdateAsync();
}
And last last resort (which I know isn’t always easy) is just make sure you’re on the latest SDK.
Best of luck. Let me know how it goes.