Failed to locate the ios application identifier

I have the following problem when trying to run the application on ios simulator after upgrading to sdk 46. I have built and installed the development client on the simulator successfully.

expo start -c --dev-client
shift+i
› Opening on iOS...
CommandError: Failed to locate the ios application identifier in the "ios/" folder. This is required to open the app.

I have no ios folder. What can I do to fix this problem?

Note: Starting the app on android works without problems.

so I solved it for now with:

expo prebuild

this command generates the android + ios folders

I still think this workaround should not be needed so if somebody has a better solution please post it here.

Hi @denniske1001

You’re right that you should not have to run expo prebuild in order for this to work.

Can you try removing the ios and android directories (see also expo.fyi/prebuild-cleanup), rebuilding the dev client, and then see if you still get that error?

Exactly the same thing is happening to me. I tried rebuilding and the same error persists… trying to start a simulator from the cli.

Do you have an ios directory in your app?
Is this supposed to be a managed or bare app?

Hi, I am using the managed expo app, I have tried building dev-client multiple times, but still getting the same error as mentioned above.

Manually launching the dev-client on the Simulator works fine.

Experiencing this issue since upgrading the project to Expo SDK 46, on expo sdk 45 it was working as expected without errors

So you do not have an ios directory?

No ios directory, I’m in a managed workflow. Same as @adilusman, simulator works fine when launched however its just the cli that plays up on the “i” command. I’ve used Dev clients before but this has only happened after upgrading to SDK 46.


Here is my directory structure.
Same as @harrisontaee
Using npx expo start --dev-client and launching App using i command or shift+i throws this error and Simulator is not launched

Launching simulator first, then launching dev-client app in simulator, and then App can be launched from the running dev server in the dev-client app. This works as expected

OK, I asked because I have encountered several people who thought they were using the managed workflow but had an ios directory after having run expo run:ios.

If you create a new app, does it fail in the same way?

Does it make a difference if you omit --dev-client from the npx expo start command? (I believe it’s no longer needed.)