Expo SDK 26 testflight error


I successfully upload a build to iTunesConnect / Testflight, but when I update to the most recent build in the testflight app I get this message:

I followed the SDK upgrade guide and my SDK version is indeed 26.0.0. Any insight as to what is going on here would be greatly appreciated!!

(The app is an ejected CRNA using ExpoKit)

Dependencies in package.json:
“expo”: “^26.0.0”,
“lodash.debounce”: “^4.0.8”,
“prop-types”: “^15.6.1”,
“react”: “16.3.0-alpha.1”,
“react-native”: “https://github.com/expo/react-native/archive/sdk-26.0.0.tar.gz”,
“react-native-htmlview”: “^0.12.1”,
“react-native-linear-gradient”: “^2.4.0”,
“react-native-svg”: “^6.3.1”,
“react-native-vector-icons”: “^4.5.0”,
“react-navigation”: “^1.5.8”,

podfile Expo entry:
pod ‘ExpoKit’,
:git => “http://github.com/expo/expo.git”,
:tag => “ios/2.5.4”,
:subspecs => [



Hi @zdeanze - have you published your app (exp publish) since upgrading to SDK 26?



@esamelson I just did and it is now working! I totally misunderstood that… I am still having trouble reconciling “exp publish” (or publishing through the XDE) with my mental model of what was happening to build / upload code to Test Flight. I was thinking that Xcode handled the App build once it was ejected (JS included) and had little to do with expo at that point… But in reality, exp publish is exposing a JS bundle that Xcode uses in the App build that is ultimately published?

Thanks for your response, and insight into this process - I really appreciate the help!



Hi @zdeanze - what you’re describing is closer to vanilla react native (which is what you would get when “ejecting” from CRNA – that’s different from “detaching”). Even when you detach from Expo, all of the OTA code loading capabilities are still there, which means it’s still dependent on having your JS bundle served on our server (or wherever you’ve published it to). Expo does not, by default, include a build step that bundles the current working version of your app, instead assuming that you will do this manually when you are ready by running exp publish (which may be at a totally separate time from when you’re making a build).

exp publish does two things in the case of a detached build – after bundling your app, it both sends that bundle to our server, so we can host it for users to grab over-the-air, AND it copies that bundle into your native project, where it’s bundled into the IPA next time you run a build in Xcode.

Hope this makes sense – let me know if you have any other questions or want more clarification!



@esamelson Crystal clear now!! Thank you for the clarification - again I really appreciate it! Have a nice weekend! :slightly_smiling_face:

1 Like

closed #6

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.