I got `Expo SDK requires Expo to run` after ejecting to bare workflow

So after upgrading to Expo SDK 34 (Managed) I decided to eject to a bare workflow (since ExpoKit is deprecated), followed all instructions, did a yarn ios but this error appeared:

I’m not sure what step to take after. It is not documented.
I would really appreciate some help. Thank you!

this can happen if you are importing from the expo package somewhere in your app. https://docs.expo.io/versions/v34.0.0/bare/using-expo-client/#avoid-importing-the-expo-package-in-bare

i did use expo-codemod to change the imports of the entire project

there may be some places where you are still importing from the expo package, for example AppLoading or Updates. you cannot import anything from the expo package in a bare project

1 Like

we do need to make this better though! apologies that it’s a bit rough and hard to understand. let me know if you’re able to resolve your issue by removing things that depend on expo

2 Likes

i found several imports that depend on expo that wasn’t covered by the expo-codemod. the app is working now, thank you for your help! :slight_smile:

3 Likes

Hi @ronnaf

Could you please let me know what expo imports you have removed and which alternative package you used instead of those imports, because in my project I am also getting the same error after ejecting expo sdk 34 project.

I can see I am only importing @expo/vector-icons and expo-av package from expo in my files, do I need to replace with some alternative import syntax after installing using expo install expo-av?

There is a tool created by the expo team, its called expo-codemod. It will replace your old imports and install the new ones. You should try it.

Thanks @ronnaf for the reply, I had already used this package but looks like my main imports were in app.js which was outside src and this package I was testing on srrc directory, so it could not detect my remaining imports.

1 Like

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