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!
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, simply duplicate the latest folder and rename its name to the version of the iOS in your phone.
Evoila! now the note in XCode disappears and Android Studio finds my phone.