Mac / XCode / iOS co-existence:
It’s very complicated, full of details and numbers but I will try to do it as simple as possible (although it’s never simple when it comes to apple….)
Co-Existence, by definition, is the combination of IOS version on an iPhone device and the version of XCode running on a version of MacOS.
- Layer 1: Every version of MacOS (the operating system) has it’s supported versions of XCode
- Layer 2: Every version of XCode supports maximum version of iOS (on the iPhone)
Example (my scenario):
- MacOS Catalina, 10.15.7 (the last version of Catalina): latest supported version of XCode is 12.4.
- XCode version 12.4: latest support version of iOS (on iPhone) is 14.4.
When simulators are used, there is no problem, the installed version of iOS in the simulators will not exceed 14.4, but when it comes to physical device, this is where the problems start….
My iPhone is updated with iOS version 14.7.1, that’s why:
- XCode will notify you of Unsupported Version.
- Some IDEs (Android Studio in my case) will not connect with the iPhone!
And: if you Mac is too old, you might need to change it to a newer version.
There are actually 2 solutions to this co-existence problem:
Option 1: Upgrade the whole system:
- Install new version of MacOS (i.e. Big Sur)
- Upgrade XCode (to version 13)
Who ever ran through such process will tell you that:
- It takes at least few hours, download of ~25GB of data from Apple
- Big mess with OS / Swift / 3rd party applications compatibility
Option 2: a simple trick with Xcode:
We can just make XCode think it does support a newer iOS version …..
browse the content of the XCode application and drill down to
(In the Application folder right click XCode and select “Show Package Content”)
In that folder you will see all the iOS versions supported by your version of Xcode, download the required version of image of the phone you want to use from HERE and simply place it in the folder of the other versions.
Note: the name of the folder extracted from the downloaded ZIP may be different than the target OS version you pressed on , DO NOT change the folder name , just copy it as is.
Evoila! now the note in XCode disappears and the app is running and Android Studio finds your phone.