Xcode 12.4 “Unsupported OS version” after iPhone iOS update 14.7
After updating iPhone iOS version to 14.7+, Xcode 12.4 can no longer build to that iPhone device.
In Xcode when choosing a Build Destination (Product > Destination > [device] or from the UI dropdown shown below) the newly updated iPhone will have beside it (unsupported OS version)
:
iPhone listed with "(unsupported OS version)".
Can't Upgrade to Big Sur / Xcode 12.5
I'm stuck on Mac OS Catalina (old hardware) and cannot upgrade to Xcode 12.5 which requires Big Sur.
How can we add/update device support to Xcode to build to an unsupported iPhone version (iOS 14.7+)?
Add/Update Unsupported iOS Version to Xcode
Apple has no plans to update Xcode 12.4 to support iOS 14.6, 14.7, etc.
But we can copy Xcode version 14.5 DeviceSupport files (download if needed) and paste (or symlink) them into directories named 14.6, 14.7, etc. (Thanks to @LPG for note on symbolic links.)
Xcode DeviceSupport Directories
Xcode DeviceSupport directories are located at:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
(In Finder, right-click on /Applications/Xcode & choose Show Package Contents
)
The list of directories will not include 14.6, 14.7 (or perhaps not even 14.5).
(If 14.5 directory is already present, simply copy/paste or symlink that directory to duplicate it with name as 14.6 or 14.7, etc. as needed, otherwise...)
Get DeviceSupport Files
The quickest way to grab device support files is from this (unofficial) Github project:
https://github.com/iGhibli/iOS-DeviceSupport
In particular, we want the 12.5 release candidate zip file (14.6, 14.7 do not exist yet):
https://github.com/iGhibli/iOS-DeviceSupport/blob/master/DeviceSupport/14.5(FromXcode_12.5_Release_Candidate_xip).zip
Inside the 12.5 Release Candidate in Github, download this .zip
After the files are downloaded, double click on the .zip file to unpack them into a 14.5 directory:
Add DeviceSupport 14.5 / 14.6 / 14.7 to Xcode
Copy and paste the 14.5 directory into /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
.
Make a duplicate of 14.5 directory by copy and pasting it into the same directory (into DeviceSupport
) then rename the directory to 14.6, 14.7, etc. as necessary.
If Xcode is open, Clean Build Folder
(under Product
menu heading). I'm unsure if this is strictly necessary. (The next time I attached my phone, Xcode also updated & processed cache files from the device itself, which took several minutes.)
Close Xcode (if open).
Attach iPhone via USB. If you haven't already updated your Mac OS to support your phone on 14.6 / 14.7, your Mac may ask you to update the Mac OS software in order to connect to your iOS 14.6 / 14.7 device. I accepted this update request. It took several minutes to complete. (I believe this is unrelated to Xcode, rather iTunes, & other Mac services, etc.)
I needed to reboot my Mac after this. Unsure if this is required for everyone.
Open Xcode. Open the build destinations dropdown beside Runner and your iPhone 14.6 / 14.7 device should (hopefully) no longer has the "(unsupported os version)" note beside it.
Now as a supported 14.6 / 14.7 phone device under Xcode 12.4, you should be able to build debug, profile & release versions of your app to your physical iPhone.
Other Issues
"Errors were encountered while preparing your device for development. Please check the Devices and Simulators Window"
- try rebooting your phone / iOS device
This might be a temporary solution but here is what worked for me:
- Go into contents/Developer/platform/iPhoneOS.platform/DeviceSupport
- Copy your previous iOS 14.5 the device support file or older version
- Paste into the same folder and change the iOS number to 14.6
- Restart Xcode, and it should let you run your code on your phone
FYI this has worked for me before too for a different iOS so it might be able to help for later versions if anyone gets stuck or cant run Xcode on their phone.
@Baker's solution worked for me
In my case I had xcode 12.3
and wanted to run app on my iPhone ios 14.6
-
close
xcode
-
download
14.5(FromXcode_12.5_Release_Candidate_xip).zip
-
unzip
14.5(FromXcode_12.5_Release_Candidate_xip).zip
it will give you folder14.5
-
copy folder
14.5
to/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
-
then copy folder
14.5
to/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
and rename to14.6
-
after step 4 you should have something like
../iPhoneOS.platform/DeviceSupport/14.5
and../iPhoneOS.platform/DeviceSupport/14.6
-
launch
xcode
run your app
you might need to restart your iPhone if it stucks on iPhone is busy: Preparing debugger support for iPhone Xcode will continue when iPhone is finished.