I'm running into compatibility issues for some external frameworks I'm using in my project. Is there a way to change the Base SDK on Xcode 8? Currently in the project settings only show me the Latest SDK.
I've tried copying the older SDK from another version of Xcode to here but it didn't work:
/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Starting with Xcode 7.3, in addition to copying in the SDK, you must also edit a certain Info.plist file, as described here for macOS in the post by agx. It looks like there is a similar file for iOS, at
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
Try changing the value of MinimumSDKVersion in there from 10.0 to whatever SDK version you want.
I've not tried this with iOS, but, using this workaround, I was just able to build a macOS target with macOS 10.6 using Xcode 8.0 (8A218a) (the "GM").
UPDATE
The hack described above stopped working for me in Xcode 9. If you want to use Xcode 9+, see my more recent answer dated Nov 22, 2017.
My original answer, although it worked with Xcode 8, for some strange reason which is not worth explaining, no longer works with Xcode 9 on a particular client's old project. So I've been using an alternative workflow which is really not too bad.
To work on this project, I open it in both the older Xcode, which can build it with the required SDK, and in a recent Xcode. I put the old Xcode window in the background and do my work in the recent Xcode. When I am ready to test changes, I do a File > Save All (⌥⌘S), then switch to the old Xcode and Build (⌘B). When the build is done, I switch back to the recent Xcode and Product > Perform Action > Run without Building (⌃⌘R). Because the dSYM file format has not changed, breakpoints work as expected.
The advantages are that no hacking of Xcode is required, and the only thing I need to remember about the old Xcode (Xcode 3 in my case) is, mercifully: ⌘B.
One little warning: In this particular project's Target, in Build Settings, it has a custom Build Products Path. This is typical of the way Mac apps were built years ago. To ensure that both of your Xcodes are working with the same product, if your old and recent Xcodes straddle the version which changed the default Build Products Path, you may need to set Build Products Path.
The workflow could probably be made even easier by scripting the xcodebuild and xcode-select command line tools, but this is good enough. With Apple's announcement at this year's WWDC about support for 32-bit Mac apps going away during the next two years, my client has some tough decisions ahead in any case.
You just have to change the "Deployment Target" settings. You basically use the latest available SDK as base SDK but select a target OS X version.
Of course it depends on why you want to use an older SDK?
When attempting to run a build on a connected iOS device in Xcode I get the error:
Could not find Developer Disk Image
I saw that there was a public beta for Xcode, so I installed it.
One of the new features is that you don't need to have a Developer Program Account Dingus to upload your app directly to your iPhone.
However, on my iPhone 4s, I also did a public beta update to iOS 8.4, problem being, that there's no Developer Disk Image available for it.
Where do I to find it or how can it be fixed?
For people who would have similar problems in the future, beware that this problem is fundamentally rooted in the mismatch of your iOS version and Xcode version.
Check the compatibility of iOS and Xcode.
I personally downloaded Xcode 6.4 beta and 7.0 beta and I was very happy to find the solution by searching "8.4" inside the application folder of the 6.4 beta. By doing this, I found the folder 8.4 (12H4125a) containing the iOS 8.4 image and I copied this folder to the same path of the 7.0 beta. The path is the following:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
When you will reopen Xcode 7 and choose your device, there will be an error message; just click on fix issue and that should do it!
This error occurs when the version of Xcode predates that of the device.
For example, attempting to run a build on a device running iOS 9.3 in Xcode 7.2 results in this error; Could not find Developer Disk Image.
Why an error message that actually describes what the hell is going on can't be provided is beyond me (Apple, I'm looking at you 👀).
Update to the latest version of Xcode through the App Store or via direct download to guarantee interoperability with connected iOS hardware.
I am facing the same issue on Xcode 7.3 or Older version of your Xcode and my device version is iOS 10 or newer version of your OS.
This error is shown when your Xcode is old and the related device you are using is updated to latest version.
We can solve this issue by following the below steps:
Method 1:-
Right click on Xcode 7.3 or version of your Xcode, now select "Show Package Contents", "Contents", "Developer",
"Platforms","iPhoneOS.Platform", "Device Support".
Now check there is latest version of developer disk image(folder) like 12.1 or newest version(folder) in your case. Copy the latest
version and Paste in the same Folder Device Support.
In my case I have 12.1 is the latest folder. Now it will generate the copy of that version like 12.1 copy or newest version(folder)copy
in your case.
Now Change the name of copy folder to your latest version of iPhone like. In mine case, I have 12.1(Folder)copy and rename it into 12.4. As you can see in the above screenshot. You can change it according to your latest version of phone. I need it for 12.4 so i just rename the folder to 12.4.
Now your Xcode has a new developer disk image. Close the finder now,
and quit your Xcode. Open your Xcode and the error will be gone. Now
you can connect your latest device to old Xcode versions.
**OR**
Method 2:-
First of all, download the latest Xcode Version. No Need to install the latest Xcode.
We can solve this issue by following the below steps:
Right click on Xcode 8 or Newer version of your Xcode, select "Show Package Contents", "Contents", "Developer",
"Platforms", "iPhoneOS.Platform", "Device Support"
Copy the 10.0 folder (or above for later version).
Back in Finder select Applications again
Right click on Xcode 7.3 or version of your Xcode, now select "Show Package Contents", "Contents", "Developer", "Platforms",
"iPhoneOS.Platform", "Device Support"
Paste the 10.0 folder (or above for later version).
Now your Xcode has a new developer disk image. Close the finder now, and quit your Xcode. Open your Xcode and the error will be gone. Now you can connect your latest device to old Xcode versions.
OR
If you can't download the latest Xcode, you can get the latest
Developer Disk Image for your Xcode from this link:-
https://github.com/Yatko/iOS-device-support-files
Thanks to Yatko. So that people can download the latest DMGs.
If you're using old Xcode and want to run onto devices with new version of iOS, then do this trick. This basically make a symbolic link from iOS Device Support in new Xcode to old Xcode
https://gist.github.com/steipete/d9b44d8e9f341e81414e86d7ff8fb62d
For Xcode 9.0 beta and iOS 11.0 beta (name your Xcode9.app for Xcode 9 beta and Xcode.app for Xcode 8)
sudo ln -s "/Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\)" "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport"
My problem was with Xcode 7 and Xcode 6.4 beta and iOS 8.4 - device not compatible.
In case of the same problem for better understanding how to fix, do next:
Go to /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Go to
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Copy folder iOS 8.4 in another folder
Restart Xcode
If you have iOS 9.1 on your phone, just download Xcode 7.1 beta instead of using GM.
See Apple's response: Could not find developer disk image for iOS 9.1
I got the same error message (Couldn't find developer disk image) after I updated my devices to iOS 9.2, but forgot to update to Xcode 7.2.
So in my case, the fix was easy: just update to Xcode 7.2 via Mac App Store.
This message appears when your version of Xcode is too old for the device's version of iOS. Upgrade Xcode to the latest.
If the App Store doesn't offer an update for Xcode, upgrade to the latest Mac OS. In the past, Apple has been rather aggressive about dropping support for past versions of Mac OS X in the latest Xcode.
EDIT: yes, this error started popping up all over again. :) Xcode 7.3.1, which is the latest one that's available for MacOS 10.11 (El Capitan), doesn't support iOS 10. You need MacOS Sierra (and possibly a new Mac).
I just got this, and I'm on Xcode 7.2.1... It appeared when I downloaded iOS 9.3. Check your Project -> Base SDK and if it isn't the same or ahead of your device version, then that's the issue. I didn't see anything in the "Updates" section, but when I searched "Xcode" in the App Store it had an update for 7.3.
Upgrading to iOS 9.3 and Xcode 7.3 requires Mac OS X v10.11 (El Capitan) for Xcode to run, and that's why auto update isn't upgrading Xcode versions.
This problem is a mismatch of your iOS version and Xcode version.
Example:
You have an iPhone with iOS 9.3 GM and your Xcode version is 7.2.1. This leads to the issue that you have to update your Xcode to 7.3 which includes SDKs and related stuff for iOS 9.3.
There actually is a way to deploy to a device running a newer iOS that the particular version of Xcode might not actually support. What you need to do is copy over the folder that contains the Developer Disk Image from the newer version of Xcode.
For example, you can deploy to a device running iOS 9.3 using Xcode 7.2.1 (which only supports up to iOS 9.2) using this method. Go to the Xcode 7.3 install and navigate to:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
From here, copy over the folder that contains the version you are trying to run on the older version of Xcode (for this example, it's 9.3 with the build number in parenthesis). Copy this folder over to the other install of Xcode, and now you should be able to deploy to a device running that particular version of iOS.
This will fail, however, if you're utilizing API calls that were specifically added to the newer version of the SDK. In that case, you will be forced to update Xcode.
I have experienced the same issue:
Could not find Developer Disk Image
My Xcode version was 7.0.1, and I updated my iPhone's version to 9.2, and upon using Xcode I ran into this problem.
The solution is pretty simple: Just download the latest version of Xcode 7.2 which was released on 8 Dec, 2015 and install it. Everything works fine for you as it was before.
Note: The actual problem is your Xcode version is not compatible/outdated with the version on your device.
This error is shown when your Xcode installation is too old and the related device you are using is updated to latest version.
There are multiple ways to solve this issues.
1. Update your Xcode installation.
This is by far the simplest method. Just update your Xcode installation to the latest stable version and things would start working again.
Note: Please update your OS as well if Xcode doesn't support your current OS. Which brings us to...
2. Manually copying Device Disk Image. No update needed.
This is the clever way around. You don't have to update your Xcode installation or your OS for this.
First open the XCode.dmg and select Show Package Contents.
Phase 1: Getting the downloaded Xcode ready.
Steps:
Download the latest Xcode.dmg from Developer portal.
Select the downloaded Xcode.dmg and right click on it.
In the options, select Open With → DiskImageMounter.
Now in Finder, open the Xcode disk.
In the disk, right click on Xcode.
Select Show Package Contents.
Now, a new finder window opens. Follow the instructions below to copy the disk image.
Phase 2: Copying the Developer Disk Image.
Steps:
In the new finder, go to Contents.
Inside Contents, Go to Developer.
Inside Developer, go to Platform.
Now select the desired platform. For our purpose, we are going to update iOS disk image only.
Inside Platform, go to Device Support.
Inside Device Support, you'll find a lot of disk images. This includes the latest device disk images as well.
Copy all the folders inside Device Support. Select all and then copy.
Note: For step 6, You can copy the disk image you want to copy as well, i.e. copy the latest only. It's the last folder in the hierarchy here.
This ends the Phase 2, Copying the disk image. Now in the next phase, we will update the developer disk image of our Xcode installed on our device.
Phase 3: Upadting the Xcode's developer disk image.
Now, close all the finder windows for faster operation and less confusion.
We are now going to update our Xcode's disk image for iOS Platform.
Steps:
Close the Xcode application if it is open.
Open a new finder window.
Select the primary partition if you have multiple partitions.
Go to Applications.
Find XCode and right click on it.
Select Show Package Contents.
Finder window updates or opens a new window with Contents as the main directory.
Select Contents.
Inside Contents, select Developer.
Now, select Platforms.
Now, select iPhoneOS.platform.
Inside iPhoneOS.platform, go to Device Support.
Inside Device Support, select all the files and Move to Trash.
Note: SKIP step 12 if you copied only the latest disk image i.e. the last folder in the hierarchy.
Now, Paste the developer disk image we copied from Phase 2 here.
Final Step, right click and Paste here.
If everything worked properly, your Xcode has new developer disk image. Close the finder now, and open Xcode. The error should be gone by now.
Reminder: Don't forget to unmount the Xcode now from finder as well.
It works, in my case for Xcode from 7.3 TO 7.1. Copy directory 9.2, for iOS device OS 9.2.1.
As others suggested, this issue is caused by an incompatible iOS version (which is higher than the maximum version that Xcode supports). Normally it can be addressed by updating Xcode, but sometimes you may be restricted to do so, hence here's another workaround.
Head to developer.apple.com/downloads (or google similar stuff if this link dies) to grab the newest Xcode dmg image manually, and then mount it. If you're doing this already, the new Xcode is not likely working for you, but you can cp /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/NEW_IOS_VERSION /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/ to copy the image you want into the old Xcode you've installed.
Of course it's not guaranteed to work for future versions, but it's definitely worth trying. For me, my iOS version is 9.3.1 (13E238), but I copied 9.3 (13E230), and it works just fine.
This happens when your Xcode version doesn't have a necessary component to build the application to your target OS. You should update your Xcode.
If you are building a new application for a beta OS version that no stable Xcode version is able to build, you should download the newest Xcode beta version.
I also had this problem. I was using Xcode 7.3 for my iOS 10 beta iPhone, so I went to install Xcode 8-beta, and I did the following step to continue using the stable version of Xcode with new build tool:
Just like #onmyway133 answer, but more user-friendly is after finish installing the Xcode 8-beta version, go to Xcode 7.3 preferences (Cmd + ,), go to the tab locations, change the Command Line Tools to Xcode 8 in the dropdown list.
I successfully built to both iOS simulator 9.3 and my device iOS 10 beta using Xcode 7.3.
This problem is fundamentally rooted in the mismatch of your iOS version and Xcode version.
Check the compatibility of iOS and Xcode.
Go To Application folder (In finder) -> right click on Xcode -> click on show package contents -> Double click contents folder -> Double click developers folder -> Double click platforms folder -> Double click iPhoneOS.platform folder -> Double click device support folder -> then add latest developer disk image.
Or
Download Latest version of Xcode.
For iOS 10 beta 7, add the following link on the command line:
sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5339a\) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
I have also faced this issue, and I'm on Xcode 7.2.
It appeared when I downloaded iOS 9.3.
Check your Project -> Base SDK and if it isn't the same or ahead of your device version, then that's the issue.
I didn't see anything in the "Updates" section, but when I searched "Xcode" in the App Store it had an update for 7.3. Upgrading to iOS 9.3 and Xcode 7.3 requires Mac OS X v10.11 (El Capitan) for Xcode to run, and that's why auto update isn't upgrading Xcode versions.
Just my two cents for iOS 10 (under NDA, but for people that can use it legally...)
Copying full folder (as other people said) works
Symbolic link seems not.
This was tested using Xcode 7.3 (std from Store) AND iPhone 6Plus with 10.0 (14A5261v).
by the way it DOES work even in Xcode Version 8.3.1 (8E1000a) adding an image for iOS 11 beta. I added 11.0 (15A5278f) inside
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
and works with my iPhone 7plus with new iOS 11 beta.
New Updates for iOS Device Support file. Don't need to update Xcode.
You just need to add support file to Xcode's DeviceSupport folder.
iOS 11.3 Developer Disk Image
iOS 11.4 Developer Disk Image
iOS 12.0 Developer Disk Image
iOS 12.1 Developer Disk Image
iOS 12.2 Developer Disk Image
iOS 12.3 Developer Disk Image
iOS 12.3.1 Developer Disk Image
iOS 13.0 Developer Disk Image
Extract the zip and then copy folder.
Paste this folder in this path
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Quit the Xcode and restart, it will work.
You can add any iOS version to support with iOS DiskImage to you Xcode from Xcode-iOS-Developer-Disk-Image repository
Download which version you need from specified repository
Quit Xcode
Open Applications folder
Right click you Xcode.app and choose Show Package Contents menu
Go to /Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Create folder with name specified in repository and put DeveloperDiskImage.dmg and DeveloperDiskImage.dmg.signature files
Run Xcode
Disk image must be in folder like this:
In case you came here because you experience this issue while using Xamarin Hot Restart from within Visual Studio on Windows, it could look like this:
Launching '' on 'iPhone'...
Connecting iOS Debugger to '' over USB on port 10000...
There is no developer image available to mount on '' with version '15.3', so the app '' will not be launched automatically
Please launch the application '' on the device '' to continue
If this is the case you might have updated your iPhone to a new version and forgot to also update your iTunes installation that you got from the Windows Store.
I have a new version of Xcode. I have an iOS device with a new version of iOS installed on it.
I want to build my app with the old iOS SDK, using the new version of Xcode.
How?
You don't; the contents of the Xcode.app bundle should not be modified.
Any particular release of Xcode includes the SDKs against which it was qualified, and using any other SDK with it is unsupported.
I was also running the same problem when I updated to xcode 5 it removed older sdk. But I taken the copy of older SDK from another computer and the same you can download from following link.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com test account test#yopmail.com/test)
There are 2 ways to work with.
1) Unzip and paste this folder to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs & restart the xcode.
But this might again removed by Xcode if you update xcode.
2) Another way is Unzip and paste where you want and go to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs and create a symbolic link here, so that the SDK will remain same even if you update the Xcode.
Another change I made, Build Setting > Architectures > standard (not 64) so list all the versions of Deployment Target
No need to download the zip if you only wanted to change the deployment target.
Here are some screenshots.
This answer is incorrect and its use is unsupported by Xcode. I am just leaving it here for historical reasons.
1. Copy the SDK from old Xcode to new Xcode
Open your Applications folder.
Right-click on the old version of Xcode and select Show Package Contents.
Navigate to Contents -> Developer -> Platforms -> iPhoneOS.platform -> Developer -> SDKs.
In a new window, open the same folder inside the new version of Xcode.
Copy the SDK you want from old to new.
If the new version of Xcode is running, you'll need to restart it now.
2. Set your SDK when building
In your project settings, select the target you're building on the left. Then select Build Settings, then Base SDK. You should now see two versions of the SDK. Select the SDK you'd like to build against.
I have read that you can have multiple SDKs in Xcode 4 installed in the Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs directory. What was not made clear is how you can get these different SDKs. I'd at least like to test for iOS 4.0 instead of the latest iOS 4.3. Though it would be cool to test for 3.2 also. My Xcode 4 installed only with the latest 4.3 SDK in this directory. Is there a convenient way to add them?
When you install Xcode 4.0, your previous version get's renamed to something like "Developer-3.2.5". If you still have a previous version of Xcode installed you can simply do this:
cd /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
sudo ln -s /Developer-3.2.5/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk .
sudo ln -s /Developer-3.2.5/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk .
If you don't have a previous version installed, uninstall Xcode 4.x and then install Xcode 3.2 and start progressively from there. After you install Xcode 4.x your previous version of Xcode 3.x will get renamed on disk after which you can symlink the 4.0/4.1 SDKs under Xcode 4.0. Relaunching Xcode 4.0 will give you 4.0 and 4.1 in the drop down option list.
No there is not a convenient way, unfortunately. The easiest way is to install an earlier version and then upgrade it, progressively if necessarily, to the latest version.
The XCode downloads available from http://developer.apple.com/downloads appear to contain packages going back to before 4.0. I recently hit this same issue and was able to determine that:
From 4.1 onward (Maybe earlier - still waiting for the download for XCode 3.2.3 and SDK 4.0.1), the packages contain sub-packages named quite similarly
Despite the inner package name, it appears that the actual iOS SDK will be included for the version mentioned on the primary DMG file. For instance, xcode_3.2.5_and_ios_sdk_4.2_final.dmg may contain what appears to be SDK packages for a bunch of versions, but the iOS SDK is only fully included for 4.2.
I was able to get my hands on 4.1, 4.2, and 4.3 by downloading the DMG XCode installers, viewing package contents, and running the corresponding iPhoneSDK4_X.pkg installer.
After installing, I had to copy the stuff it dropped from /Platforms/iPhoneOS.platform/ into the new location at /Developer/Platforms/iPhoneOS.platform.
In addition to the SDKs for iPhoneOS, I also made sure the iPhoneSimulator.platform stuff was there. For me, it seems that XCode handles installing most device support for debugging..
I hope this helps! The tricky part for me was realizing that the package names may be the same, yet the contents may be different. Each download only seems to have included a single full SDK.
Once I did this, i was able to change my base SDK in XCode and build against the target SDK.
Cheers!
PS: Once you add additional SDK's, you will likely see additional destinations appearing in your schemes list with identical device names for the physical devices. It drove me nuts, as each one is associated with one of the SDK's, yet the SDK version isn't listed in the list. Not bad once you figure out which is which, usually the symptom being a failed build, since it targets another SDK based on which physical device is selected. More info on this post: duplicate device scheme in xcode 4