Updated project and build keeps failing

Hello!

I’ve recently updated an old Expo project from SDK 34 => 40 with “expo upgrade”, and resolved any issues that occured.

Now, whenever I try to build the project with “expo build:ios” I get an error:

Tue, 05 Jan 2021 14:45:06 GMT
Error: Unsupported SDK Version!
    at Object.ensureCanBuildSdkVersion (/usr/local/turtle-js/build/builders/utils/version.js:19:15)
    at async Object.iosBuilder [as ios] (/usr/local/turtle-js/build/builders/ios/index.js:20:9)
    at async build (/usr/local/turtle-js/build/jobManager.js:181:33)
    at async processJob (/usr/local/turtle-js/build/jobManager.js:118:32)
    at async Object.doJob (/usr/local/turtle-js/build/jobManager.js:49:5)
    at async main (/usr/local/turtle-js/build/server.js:66:13)

In the activty-tab on the Expo-website I can also see that it says SDK 34.00 whenever I try to build an IPA.

Why is it not showing SDK 40.00?

Build service is using last published bundle, so if you run build with --no-publish flag it will fail because bundle for sdk 40 was not published. Is this a case?

If the above is not the case, make sure that you don’t have any references to sdk34(the content of app.json, version of expo package)

Hi wkozyra,

Yes, that’s entirely correct, I’m building it with --no-publish flag.

I want to build an iOS IPA to be sent out with Testflight, is it possible without publishing?

If you want to use your current code you need to publish

  • apps that are currently in production won’t be updated (publish is fixed to specific SDK version)
  • you can use release-channel to separate builds that are used for testing and ones you want to deploy

Thanks for the quick reply wkozyra!

Ok, thanks for the information. I will separate the channels, and use one for deployment and one for testing!