OTA Update issue on IOS

I’m successfully using eas to build and submit my app, but it seems I’ve broken OTA updates on IOS. When I run expo publish, it successfully publishes and returns a manifest url, but when I quit and reopen the app on my phone, I don’t see my updates. I have not added any new libraries, only one image (not an icon). Am I missing a step entirely?

I checked this documentation:

And my eas json file looks like this

  "build": {
    "release": {
      "ios": {
        "releaseChannel": "production"
    "preview": {
      "ios": {
        "distribution": "internal"

Thank you!

When you run publish, is it the same expo sdk that you build your app against, it outputs the target sdk? I have tried that I build my app against sdk 41. Then I updated expo cli to newest version. Then it tries to submit to sdk 42. My app didn’t receive updates.

I updated my app to sdk 42, then OTA worked again

Right, the OTA update is tied to the SDK version. (With EAS Build it’s even more restricted because the native code depends on which dependencies you have installed. With the classic build system all apps built with the same SDK version will have the same native code.)

Basically, wou can’t have JavaScript code that depends on native code from SDK 42 being run on an SDK 41 app that has different versions of the native dependencies. It will likely crash the app.

Gotcha, thank you. Ran expo upgrade and trying an OTA update with a new release. I wish it were more clear that EAS Build’s expo version (42) and my app’s SDK version (40) had to be the same in order for updates to work, but maybe I missed something obvious.

See the following: