How to run Xcode 11.4 on macOS Mojave 10.14.6

Viewed 35255

Background on problem:

I have an iPhone 6s that has updated itself to iOS 13.4. Before the iOS update, I could code + run my app on the device from Xcode, great.

Now I can't run my app from Xcode on the device to test my code, as it says:

Xcode could not locate device support files
This iPhone 6s is running iOS 13.4 (17E255), which may not be supported by this version of Xcode. An updated version of Xcode may be found on the App Store or at developer.apple.com.

So I tried installing the latest Xcode (11.4) which now says I have to update my whole OS to Catalina.

I don't want to do this as my system is working fine and I have heard bad things about that release.

Question:

Is there a way I can get Xcode building to my iPhone without updating my whole OS and potentially screwing up my whole machine?

5 Answers

You cannot run Xcode 11.4 on Mojave but you can add support for iOS 13.4

  • Download the 13.4 image from this repo
  • Quit Xcode
  • Unzip the archive and move the folder into /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • Launch Xcode

Consider that this way adds only the support for iOS 13.4, nothing else.

Update: This does not work with iOS 14 because iOS 14 requires Xcode 12.

Here's an alternative solution that doesn't require downloading files from an untrusted source:

  1. Install the latest release of Xcode that runs on Mojave (currently Xcode 11.3.1). It can be downloaded from Apple's developer pages.

  2. From the same page, download a release of Xcode that supports iOS 13.4 (for example Xcode 11.4.1). Unzip it, rename it to "Xcode-11.4.1.app" and move it to the Applications folder, but don't run it.

  3. Add a symbolic link for iOS 13.4 from the DeviceSupport folder in Xcode 11.4.1 to Xcode 11.3.1, as described in Peter Steinberger's Gist.

If you use the versions used in this answer, the command to add the symbolic link would be

sudo ln -s /Applications/Xcode-11.4.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.4 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

You can run Xcode 11.4 - 11.7 on your Mac which is running 10.14.

  1. Download Xcode 11.4 ~ 11.7 from https://developer.apple.com/download/
  2. Extract the .xip file, and you will get Xcode.app
  3. Modify LSMinimumSystemVersion in Xcode.app/Contents/Info.plist from 10.15.x to 10.14
  4. Now you can use Xcode 11.4 ~ 11.7 without upgrading to Catalina.

However, this trick doesn't work for Xcode 12, which requires some frameworks that do not exists in macOS Mojave.

My Apple TV 4K was running tvOS 13.3 and I upgraded to 13.4 which required that I use this technique to keep working with Xcode 11.3.1.

What is odd is that in the DeviceSupport folder, Xcode 11.3.1 only ships with tvOS up to 13.2. So how did it ever work with a hardware device running 13.3? I guess 13.2 and 13.3 are close enough that 13.2 still works.

13.4 does not work out of the box, so I copied both 13.3 and 13.4 from the Xcode 11.4.1 app into my 11.3.1 app. All is well again.

You can run Xcode 11.4 - 11.7 on your Mac which is running 10.14.

  • Download Xcode 11.4 ~ 11.7 from https://developer.apple.com/download/
  • Extract the .xip file, and you will get Xcode.app
  • Modify LSMinimumSystemVersion in Xcode.app/Contents/Info.plist from 10.15.x to 10.14.6

Now you can use Xcode 11.4 ~ 11.7 without upgrading to Catalina. However, this trick doesn't work for Xcode 12. I tried this trick on my mac mojave 10.4.6

Related