Ok, here is my step by step (what I think is) a solution guide... (worked for me)
macOS Tahoe 26.4 introduces a bug where a CoreSimulator subprocess (simdiskimaged) repeatedly exceeds its 20MB memory limit and gets killed by the system. This causes CoreSimulatorService to hang indefinitely, which in turn causes Xcode to freeze, SDKs to show "status unavailable," and all simulators to become inaccessible.
The root cause is a runaway loop that creates new SimRuntimeBundle files every 11 seconds in /Library/Developer/CoreSimulator/Cryptex/Images/mnt/, bloating the state that simdiskimaged must load on startup beyond its jetsam memory limit.
The files that need to be deleted are protected by TCC (Transparency, Consent, and Control). Without this step, sudo rm will return "Operation not permitted."
- Open System Settings → Privacy & Security → Full Disk Access
- Click the + button
- Add Terminal (located in
/Applications/Utilities/) - Toggle it on
- Quit and relaunch Terminal
Close Xcode completely. Force Quit if necessary.
Run the following commands in Terminal:
sudo rm /Library/Developer/CoreSimulator/Images/images.plist
sudo rm -rf /Library/Developer/CoreSimulator/Cryptex
Restart your Mac.
Open Terminal and run:
xcrun simctl list devices
This should return a list of devices (marked "unavailable") without hanging. If it responds, the daemon is healthy again.
Before re-downloading runtimes, clear any stale references that may cause duplicate errors:
xcrun simctl runtime delete all
sudo rm -rf /Library/Developer/CoreSimulator/Images/
sudo rm -rf ~/Library/Developer/CoreSimulator/Devices/
- Launch Xcode
- Go to Xcode → Settings → Platforms
- Download the simulator runtime(s) you need (e.g., iOS 26.4)
Xcode should now function normally.
- You do not need to reinstall Xcode or downgrade macOS.
- Consider filing a Feedback with Apple referencing the 20MB jetsam limit on
simdiskimaged and the uncapped SimRuntimeBundle creation loop. - This fix was developed by diagnosing the issue from the ground up: identifying the deadlocked XPC call in
CoreSimulatorService, tracing it to the killed simdiskimaged daemon, and discovering the jetsam memory pressure caused by accumulated runtime state. - You may want to remove full disk access from your terminal when you are done.