Why this happens
Before Xcode can install, debug or profile on a physical device, it copies a developer disk image to the phone and mounts it. That image ships inside the Xcode bundle, in a folder named after the iOS version it supports. If the device is running an iOS version Xcode has no folder for, there is nothing to mount and Xcode stops with Could not find Developer Disk Image.
So this is a version mismatch, not a cable, trust or provisioning problem. An older Xcode paired with a newer iOS release produces exactly this message. It shows up most often when you keep an older Xcode around for a project that doesn’t build with the latest one, and then update the test iPhone to a newer iOS.
The disk image is not something you install on the phone permanently. Xcode transfers and mounts it each time it needs to talk to the device, which is why the fix is about the Xcode side, not the device side.
How to fix it
1. Confirm the mismatch first
Check the two versions before changing anything:
- Xcode > About shows the Xcode version.
- On the iPhone: Settings > General > About > Software Version.
If the iOS version is newer than the newest one your Xcode supports, that is the cause. You can also list the versions Xcode already has support files for:
ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Each entry is a folder named after an iOS version. If your device’s version is not there and nothing newer is there either, you have found the problem.
2. Update Xcode (the real fix)
Running an Xcode that knows about your iOS version is the clean solution. Recent Xcode releases fetch the matching support files when you connect the device, so as long as your Xcode is current enough, the folder appears on its own. Quit Xcode, update from the App Store or from developer.apple.com/download, reopen it and reconnect the device.
If a project genuinely cannot build with a newer Xcode, this is not an option for you — go to the next step instead.
3. Copy the Device Support folder from a newer Xcode
If you have a newer Xcode installed alongside the old one, you can borrow its support files. You do not need to launch the newer Xcode; you only need its bundle on disk.
- Quit Xcode completely (Cmd-Q).
- In Finder, right-click the newer Xcode and choose Show Package Contents.
- Navigate to
Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport. - Copy the folder for the newest iOS version you see there.
- Right-click your older Xcode, choose Show Package Contents, and open the same path.
- Paste the folder in.
- Reopen Xcode and connect the device.
The same operation from Terminal:
# copy the newest support folder from a newer Xcode into the old one
sudo cp -R "/Applications/Xcode-16.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/18.0" \
"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/"
Use whatever folder name actually exists in the source Xcode — do not guess a version number.
4. Rename the copied folder to the device’s iOS version
Sometimes the newest folder you have is still older than the device, for example when the phone is on a point release the newer Xcode does not ship a folder for. In that case duplicate the closest folder and rename the copy to the exact version string the device reports.
cd "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport"
sudo cp -R 18.0 18.2
Quit and reopen Xcode afterwards. The folder name is what Xcode matches against, so the string must be exact — 18.2, not 18.2.1, unless that is what the device actually shows.
Treat this as a workaround, not a guarantee. It usually works between point releases of the same major version because the disk image format rarely changes. Across major versions the image may mount but debugging can still fail. If it does not work, update Xcode rather than trying more folder names.
5. If you cannot get a newer Xcode at all
Community-maintained mirrors of DeviceSupport folders exist, and they are handy when you are stuck on an old Xcode on a Mac that cannot run a newer one. They are third-party downloads, so verify what you are copying and prefer the official Xcode route whenever it is available.
It is also worth checking whether your macOS version is the real blocker. If the Mac cannot run a newer Xcode, no folder copy will make a current iOS release properly debuggable from a very old toolchain — the constraint is the toolchain, not the missing image.
How to prevent it
- Update Xcode before updating a device you debug with, not after.
- Keep old Xcode versions around until you have confirmed the new one builds your projects.
- When you keep two Xcodes, give them distinct names (
Xcode.app,Xcode-16.app) so the DeviceSupport paths are unambiguous. - If a device must stay on an old iOS for testing, keep the Xcode that supports it installed too.
- After any Xcode update, glance at the DeviceSupport folder once — it is faster than discovering the gap at build time.
FAQ
Does this error mean my cable or trust prompt is broken?
No. Cable and trust problems produce different symptoms — the device not appearing at all, or repeated “Trust This Computer” prompts. Could not find Developer Disk Image is specifically about missing support files for that iOS version.
Where is the Developer Disk Image stored?
Inside the Xcode bundle at Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/<iOS version>/. That folder holds the image Xcode mounts on the device. Symbol files for a connected device are a separate thing and live in ~/Library/Developer/Xcode/iOS DeviceSupport.
Can I just rename any folder to my iOS version?
You can, and it often works between point releases of the same major version. It is unsupported and can fail across major versions. If the renamed folder does not get you a working debug session, update Xcode instead of trying more names.
Parts of this guide are adapted from content licensed under CC BY-SA 3.0; this article is shared under the same license.
