Help · Mac storage

Moving Xcode simulators to an external drive.

Each simulator runtime (the copy of iOS, watchOS, tvOS or visionOS the Simulator boots) takes several gigabytes, and every simulated device keeps its own apps and data. Short answer: Apple has no supported way to keep them on an external drive. What you can do is remove the ones you don't use, and keep spare runtime downloads on the external drive instead.

Where the space goes

See what you have

  1. In Xcode choose Xcode › Settings and click Components. Apple says it lists what's installed along with the amount of storage you can recover by removing it.
  2. Or in Terminal, list the installed runtimes and their sizes:
    xcrun simctl runtime list
  3. List your simulated devices:
    xcrun simctl list devices
  4. See how much the devices take:
    du -sh ~/Library/Developer/CoreSimulator/Devices

Remove what you don't use

Everything here deletes permanently. Removing a device deletes the apps and data on it. Removing a runtime means downloading it again (several gigabytes) before you can use it. Quit Xcode and the Simulator first.

Don't delete runtime files in Finder. They're owned by the system and tracked by the Simulator's own records, so removing them by hand can leave Xcode confused. Use Xcode or simctl.

Can they live on an external drive?

Not in a way Apple supports. Xcode has no setting to keep simulator runtimes or simulated devices on another drive, and Apple doesn't document one. Runtimes sit in a protected system area, so don't try to move or link them. You'll find guides that move the Devices folder and leave a symbolic link behind. Apple doesn't support that, and whenever the drive isn't connected Xcode and the Simulator can't reach your simulated devices. We don't recommend it.

The supported alternative: keep runtime downloads on the drive

Apple's xcodebuild can save a runtime as a file instead of installing it. Keep these files on your external drive, remove runtimes you rarely use from your Mac, and install one again from the drive when you need it, without downloading it again.

  1. Download a runtime to the drive (replace MyDrive with your drive's name):
    xcodebuild -downloadPlatform iOS -exportPath /Volumes/MyDrive/Runtimes
    Add -buildVersion and a version number, such as -buildVersion 18.0, for a particular release.
  2. When you need it, install it from the drive (use the file's real name):
    xcodebuild -importPlatform "/Volumes/MyDrive/Runtimes/runtime file.dmg"
    Apple notes you may need to run xcodebuild -runFirstLaunch first.

An installed runtime always lives on your Mac's own drive. The file on the external drive is a spare copy, so it saves you the download, not the space while the runtime is installed.

Build data can move

Xcode's build data (DerivedData) is different: Xcode lets you choose where it goes, in Xcode › Settings › Locations. To clear it instead, see how to clear Xcode's cache.

See exactly what your simulators take.

Pangalin Space Manager lists each simulator runtime with its size (read from Xcode's own simctl), says whether it's the newest one for its platform, and gives Xcode's own command to remove it. Your simulated devices are listed as worth a review, and simulator caches as safe to clean. Where did the rest go? shows simulators as part of System Data. There, and in its Janitors, it can run xcrun simctl delete unavailable for you, after a confirmation that says plainly it deletes permanently. Running it needs a licence, because the space they free can't be measured in advance.

Free to scan · first 5 GB freed free, then $25 a year · 14-day full refund · Notarised by Apple