Hi,
I have already opened an issue on expo’s github repo but i’m not receiving further answers and as the issue is getting more and more urgent, I thought I’d open a topic here (sorry about the duplication but I couldn’t see another way).
Here’s the link to the original issue: iOS: No OTA on SDK 38 · Issue #9812 · expo/expo · GitHub
Now I know ExpoKit is deprecated but I literally have no time to get out of it right now. Since OTA’s are working on android, there surely can be a way to bring them back on iOS too.
hi there, what does your EXShell.plist file look like? that should contain your values for release channel and things like that. Also, you mention the developer menu in your github issue, but that’s only available when developing, and to test OTA you need to run a release build in Xcode (so I’d double-check that you are)
You’ve mentioned that it is possible to test OTA using the release scheme of the app in Xcode, could you tell me more about that ? I didn’t know it was possible, so far I’ve only noticed that OTA’s are broken because the app doesn’t get the update after running
About the developer menu, I am aware that it should only work using the dev configuration (I’m not expecting it to work using the release scheme).
But I’m guessing these issues are unrelated unless you think that they might be linked somehow (for instance the fact that both OTA’s and developer menu are broken on iOS but both work on Android).
when you say the app doesn’t get updated after running expo publish, you mean your live app? Or you built the app locally with Xcode after running expo publish, and it’s using an older version of the JS?
I’ve already uploaded my app to the AppStore, it is live and running (currently on TestFlight) on SDK 38.
I’ve just tested the OTA locally (build app in release scheme with dev certificates, make code change, run expo publish, re-launch from Xcode) and the change was indeed taken into account, thank you for that tip!
But the live app still didn’t catch the update. What would be the difference between my local release scheme and the live app ? Except for the fact that I have to switch to development certificates when testing locally.
release is the scheme used when archiving by default (you do have the option to change that though), so I’m not really sure what could be different. I would double-check that the sdk version and release channel are correct, and if you still can’t find out more info you can share your app.json updates key
I’m 100% positive that the SDK version and release channel are correct as I have just deployed the app a few hours ago. I have even deployed again with a new release channel just to make sure.
Here is the content of my updates key:
No, it’s pretty hard to investigate without being able to reproduce the issue myself
One thing you could try is checking if there is an update available manually with the Updates module and if there is call Updates.reloadAsync() to trigger it. If that works then we know it’s probably a configuration issue
We already check for updates in the code using Updates from expo since expo-updates is incompatible with ExpoKit. But no luck, Updates.checkForUpdateAsync doesn’t return available updates (again, only on iOS).