Help Xcode 11 simulator doesn't show expo App

Does it work for you if you expo init a new app and replace the contents of App.js with the code from my comment?

Maybe you should try deleting node_modules and re-run yarn or npm install. And try expo start -c to clear the packager cache.

@wodin So the weird thing is that I just upgraded my expo-cli to 3.1.2 and created another test project using expo. When I added icons on it, it worked. However, when I came back to the old project and added the icon to a screen, it still gave me the question mark box. What should I do now? Also my ios simulator doesn’t have expo app on it and when I tried to open the project using ios simulator, it gave me this error

There was a problem booting a device in iOS Simulator. Quit Simulator, and try again.
Error installing or running app. Error: No iPhone devices available in Simulator.

This is probably happening because “simctl” isn’t booting the correct simulator from the command line. To ensure the simulator with iOS 13 is boot and the app is run on it, you should follow the steps below. The “which” command assumes your shell is pointed at Xcode 11 which is normally under /Applications/Xcode.app

export PATH="$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin"
simctl list | grep 'iPhone 11 Pro Max'
# shutdown may cause an error, ignore it [1]
simctl shutdown 'iPhone 11 Pro Max'
simctl boot 'iPhone 11 Pro Max'
expo client:install:ios
expo start

At this point, the Expo CLI can control the iOS simulator properly. You should be able to just press i to open the app in Expo.

It’s possible the old Expo app is still installed at this point. If so, tap and press for about 3 secs (be patient), then release. The icons will wiggle. Press the icon to uninstall it. Then re-run the procedure from the comment marked ‘[1]’ above.

@joeb So do you mean that I have to go under the Xcode dir before hitting the first command?

You do not. The simctl command is added to your shell by appending the directory to the PATH shell variable.

@joeb so this is what I got in the terminal. It looks better but I couldn’t find the expo app on the simulator in order to open the proejct.

I noticed you have ‘iPhone 11 Pro Max’ running iOS 12.1. This means you are using Xcode 10. I recommend using Xcode 11. The newest Expo client supports iOS 13. My version is currently 2.13.0.107074. It says Supported SDKs: 33, 34, 35

Let’s get you current and up and running by going through all the gory details carefully…

Latest Xcode

With Xcode running, click on the Xcode menu item at the top left of the screen. You should see the version. The latest version is 11.1. You could also use this command:

$ plutil -p /Applications/Xcode.app/Contents/version.plist | grep VersionString
  "CFBundleShortVersionString" => "11.1"

If you need to upgrade, you should be able to use the Mac App Store, I don’t recall the details of how this is done.

Latest expo-cli

You should be using version 3.3.0. These commands will install it.

$ sudo npm install -g expo-cli
# or
$ npm install -g expo-cli
# lot's of output occurs here.
$ expo --version
3.3.0

Reseting All Simulators

I assume it’s OK to wipe out all of the app installed on all the simulators, if so, let’s use the big hammer.

Assuming simctl is still in your PATH… these commands should reset the simulator completely and install a fresh Expo client.

$ export PATH="$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin"
$ simctl shutdown all
$ simctl erase all
$ simctl boot 'iPhone 11 Pro Max'

You should see the simulator with the Apple icon and a progress bar. When it’s done you’ll have a fresh simulator with three ‘. . .’ at the bottom.

Install the Latest Expo Client

$ expo client:install:ios

You will see a screen like this:

Notice the three ‘. . .’ at the bottom. You need to slide the display to get to the second screen. Place your mouse on the right of the simulator screen, click, hold, slide left. You will see a screen that looks like this:

Run your App in the Expo Client

It’s best to use the expo-cli to run your client. Here’s how.

$ expo start

You will see this screen:


Enter the character ‘i’

You will see these screens:

Tap on Got it

Your app will be running now:

All Done

That should do it. Have fun!

1 Like

@joeb Ok I’ll test it tonight and see if it’s working. I’ll let you know. Thank you for keeping up with me on this.

@joeb I’m confused right now. My xcode version is 11.1 but the highest simulator IOS version that I found in the Components tab is 12.2. My expo cli version is 3.3.0 now. How do I add the iOS 13 for my simulator?


So I figured it out how to make it work around it by launching a 12.2 IOS simulator and installed the expo app from my project on the simulator. Thank you so much for your help. If it wasn’t for your help, I wouldn’t be able to resolve it. You’re the best Joe. :+1:

1 Like

I had the same problem. The simplest way is to use the Hardware menu of the Simulator to Manage Devices.

Select the Simulators segment. Then click on the “+” on the lower left (next to the filter search bar).

@joeb awesome. I’ll definitely do that. Thank you so much for helping me with this. It was a good experience that I learned from you.