Search code examples
iosreact-nativeexpoover-the-airexpo-publish

Expo Publish not updating after submitted build - ios


Using Over-The-Air updates in React Native (by typing "expo publish" in terminal) used to work on IOS, but ever since I published a new build (see below) and submitted the build to Appstore, It doesnt want to download the OVA (Over The Air) update on IOS.

It updates fine on android after closing and opening the app a few times.

It used to work on ios before simply by typing "expo publish" in terminal (without having to increment any build number or anything), but since I published a new build, it hasnt worked.

The changes I made in the build:

  • incremented build and version numbers
  • edited AppDelegate.m(m): adding #import <GoogleMaps/GoogleMaps.h> and [GMSServices provideAPIKey:@"_YOUR_API_KEY_"];
  • Added stuff to Podfile and Info.plist in order to make react-native-maps working, see IOS -> Enabling Google Maps in docs

Im using the latest expo-cli. Some suggested running "expo optimize" but that is not a command anymore. I can open the updated version on my iPhone through on Expo Go, but the real app from Appstore will not update. Tried reinstalling the app.

My eas.json:

  "cli": {
    "version": ">= 3.7.2",
    "promptToConfigurePushNotifications": false
  },
  "build": {
    "development": {
      "distribution": "internal",
      "android": {
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "buildConfiguration": "Debug",
        "resourceClass": "m1-medium"
      }
    },
    "preview": {
      "distribution": "internal",
      "ios": {
        "resourceClass": "m1-medium"
      }
    },
    "production": {
      "ios": {
        "resourceClass": "m1-medium"
      }
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "xxxxxxxxxxx",
        "ascAppId": "xxxxxxxx",
        "appleTeamId": "xxxxxx"
      }
    }
  }
}

Solution

  • The answer is that it’s not possible to update native code via OTA. If native code has been changed or a new native library added, the update has to be deployed through the app stores as usual.