ExpoKit iOS: Updating from pre-SDK-17 to SDK 17+

We made some structural changes to ExpoKit for iOS starting in SDK 17. They will help make future ExpoKit upgrades easier, but just this one time, there is some extra effort if you already have an ExpoKit project running on an earlier version.

(If you are about to detach a new project to ExpoKit, you don’t need to read this! This is for people who already have an ExpoKit project running an older version, and want to update it.)

  1. Delete .expo-source/ios completely.
  2. In your Podfile, change the ExpoKit dependency to look like this:
  pod 'ExpoKit',
    :git => "http://github.com/expo/expo.git",
    :tag => "ios/1.16.1",
    :subspecs => [
      "Core",
      "CPP"
    ]

You can see the list of ExpoKit releases here.
3. Open ios/your-project/Supporting/EXSDKVersions.plist in your project and change all the values to 17.0.0.
4. For your JS dependencies, follow the normal SDK 17 upgrade instructions.
5. pod install

In the future, upgrading ExpoKit will just be a matter of changing the :tag in your Podfile. There may also be version-specific breaking changes. You can see a simpler version of these instructions here.

1 Like

@ben The docs still state that you need to update the EXSDKVersions.plist file. Does this need to be changed?

https://docs.expo.io/versions/latest/guides/expokit.html#open-iosyour-projectsupportingexsdkversionsplist-in-your-project-and-change-all-the-values-to-the-new-sdk-version

Incidentally I’m getting an error with that file having upgraded to expo v20, whether or not I include 20.0.0 (I’m moving from v18)

Preparing iOS build at /Users/IRL/Projects/cure8/cure8-app/ios...
[exp] ENOENT: no such file or directory, open '/Users/IRL/Projects/cure8/cure8-app/ios/cure8/Supporting/EXBuildConstants.json'
[exp] Set EXPO_DEBUG=true in your env to view the stack trace.
Command /bin/sh failed with exit code 1

Ignore that error - I had changed the name of my app in app.json without really thinking, that’s what the issue was.

But it does look like you still need to change EXSDKVersions.plist to the latest SDK version.