Fixing Xcode’s iPhone XS, XS Max and XR Simulator Names and iOS Versions
At the time of writing Xcode 10.2 has just been released. I was working through all the latest iOS 12.2 devices to run Dave Verwer’s excellent SimulatorStatusMagic app to clean up the status bars, ready for taking new App Store screenshots, when I noticed something strange.
In its device chooser menu, Xcode usually shows version numbers alongside each device simulator that is available for multiple iOS versions. The exact choices listed depends on which simulator versions you’ve downloaded in the past and the minimum deployment target for your current project:
When I got as far as the iPhone Xs I noticed there were no version numbers being shown. I had iOS 12.0 and 12.2 versions of the Xs, Xs Max and Xʀ available but they were being listed in two separate groups:
Look closely and you will see that the names of the iOS 12.2 devices have changed slightly. The “XR” is now “Xʀ” — it uses a small cap. The XS is very probably also using a small cap, but a lowercase “s” looks the same to me! These different names are why Xcode is treating them as separate devices and not grouping them together with disambiguating version numbers.
I might be seeing this problem because I prefer to manually download Xcode versions so that I can easily switch between them in case I need to use an older version to release an app. If I used the Mac App Store version of Xcode then maybe this problem would not have occurred. My article Working with Multiple Versions of Xcode explains the benefits of manual downloads and describes how to do this.
If you are reading this article from the future then you will probably see multiple numbered versions with the new names (e.g. for iOS 12.2, 12.3, 13.0…) and a single set of three iOS 12.0 devices without numbers.
We need to change the names of the pre-iOS 12.2 variants to exactly match the new spelling. Use the
Add Additional Simulators... menu item at the bottom of the device list to open Xcode’s Simulators configuration window:
In the screenshot above you can see that the selected simulator for “iPhone XR” runs iOS 12.0. The “iPhone Xʀ” at the end of the iOS section is the iOS 12.2 version.
- Select the latest “iPhone Xʀ” entry, right click and choose “Copy Name”.
- Select the older “iPhone XR” row and press the Return key to edit its name.
- The existing name should already be highlighted so you can just press ⌘V to replace it with the new name.
- Press the Return key again to finish editing.
Repeat these steps for the iPhone Xs and Xs Max simulators, copy and pasting the new name into any older iPhone XS, XS Max and XR simulators you have available. If you have more than one set of devices with the old names, update them in the same way too.
To fully pick up the name changes it seems that you have to close and re-open your project. It might be simplest, and safest, to just quit and restart Xcode!
Open the device chooser drop down again and the normal grouping and version number annotations can be seen: 🎉
Other Articles That You Might Like
If you’re an iOS developer you might be interested in my long-running series of articles that show how apps adapt to newer device sizes depending on which Xcode version they are built with:
- How iPad Apps Adapt to the New 10.2" iPad
- How iPad Apps Adapt to the New 11" and 12.9" iPads Pro
- How Apps Adapt to the Series 4 Apple Watch Screen Sizes
- How iOS Apps Adapt to the iPhone XS Max and iPhone XR Screen Sizes
- How iOS Apps Adapt to the iPhone X Screen Size
The screenshots in those articles were taken from the iOS simulator running my Adaptivity iOS app. There is an iPhone-only version of the app to show How iPhone-only Apps Appear on iPad (it changed in iOS 12).
You may not have realised that there were iPad Navigation Bar and Toolbar Height Changes in iOS 12. You must certainly have noticed the View Controller Presentation Changes in iOS 13.
If you found any of these articles helpful then please take a look at my apps in the iOS App Store to see if there’s anything that you’d like to download (especially the paid ones 😀). If you work with a lot of Xcode projects you might like my Mac Menu Bar utility XcLauncher.