Expo SDK Upgrade to version 39

Hi
I am currently in expo sdk version 36 and expo cli version 3.15.4. I am using expo build services for building the app.
How long can I stay on expo sdk version 36.
How to upgrade SDK to latest version. Also will there be any conflicts.

Thanks

Hi

SDK version 39 was just released last month and support for SDK 35 was removed from the client etc. at the same time.
As far as I know they expect to release SDK version 40 in December. I don’t know if SDK 36 is going to be removed at that point, but if you can I’d suggest you upgrade to SDK 39 before SDK 40 is released.

To upgrade, first make sure you have your latest version committed to Git. Then upgrade to the latest expo-cli. Then run expo upgrade. That will do what can be safely automated.

At the end it will print out links to the release announcements/changelogs. You should read through those to see what breaking changes there were in each version so you can make the necessary changes. There might also be other dependencies that you can upgrade.

If something goes wrong you can revert to the version from before your upgrade attempts to try again.

If the above doesn’t go smoothly there are other variations on this approach. e.g. upgrading to SDK 37 first and getting that working before upgrading to SDK 38, etc.
Or else creating a new project with expo init, installing the dependencies with expo install and moving your code and assets across from the old project. In both of these cases you would still need to check the changelogs to make sure you’ve dealt with any breaking changes.

1 Like

Thanks @wodin for the detailed guidance.

Hi @wodin

After upgrading the SDK to version 39, can I able to build standalone app for my project which is in older SDK version say version 36 using expo build services?

Thanks.

I am not sure I understand your question.
Yes you can use expo build:android or expo build:ios to build a new standalone app. But users running the SDK 36 version of the app will need to upgrade (e.g. from the App/Play store) to get the new version.

If you want to publish an OTA update for your SDK 36 users, you should create a Git branch starting from the last version before you upgraded, make the changes to the JS/assets, commit the changes, and run git publish.

An app built with one SDK will only be able to install OTA updates that were built with the same SDK.