127

I found that Xcode on my laptop consumes much of its storage, so I am trying to delete unnecessary files in Xcode.

There are four directories under Application/Xcode.app/Contents/Developer/Platforms/. I feel that WatchSimulator.platform and AppleTVSimulator.platform are not necessary, because I use Xcode almost only for basic iOS development.

I would like to know if I can delete those platforms directories directly?

Directories

4
  • 1
    Just an FYI... You're only going to gain about half the space shown, as they appear to be compressed. Look at the Get Info sheet, e.g. on my system for WatchOS.platform it shows 50,579,830 bytes (28.2 MB on disk) for 2,212 items and AppleTVSimulator.platform shows 1,865,477,227 bytes (1.1 GB on disk) for 29,705 items. So you're not going to gain as much free space as the values shown in your OP. Commented Nov 22, 2017 at 14:26
  • 1
    The files are compressed and Apples's HFS+ File System supports Transparent Compression but Finder and ls in Terminal lacks a flag to see a file is using hfsCompression, sans the Get Info Sheet where you can see the on disk value is dramatically different then the size show in bytes. There is a utility written by a third party, which includes the source code if one wants to compile it themselves, afsctool. Among its capabilities is to get information about existing HFS+ compressed file(s). Commented Nov 22, 2017 at 15:26
  • What program is helping you determine these large files on your drive?
    – Pysis
    Commented Nov 22, 2017 at 19:57
  • 1
    @Pysis Looks like OmniDiskSweeper to me. That tool hasn't been updated for APFS and compression, though it looks like they have some new test builds out now. Commented Nov 22, 2017 at 22:54

10 Answers 10

116

Yes, you can delete any simulator that you don't use. I do this routinely when I stop supporting older iOS versions.

If you delete them and then you find that you need them at some point in the future, you can redownload them from Apple's developer site.

The best way to delete them is in Xcode. Go to Window -> Devices and Simulators. This will open a new window with all the devices you use in Xcode.

At the top, tap on Simulators and you'll see a list on the left-side.

From there, find the simulator you want to delete and Cntl - click (or right-click) and select Delete.

I do this with each simulator that runs in each iOS version that I no longer support.

Update July 2020: There's a free utility in the Mac App Store named DevCleaner for Xcode. This application can display and delete simulators and various caches. I've found it be a very quick and easy way to regain space. I'm not the developer or associated with this application in any way.

2
  • 32
    I know this post is a couple years old, but this doesn't appear to remove the simulator, but rather just the listing of it in Xcode. So if one needed to remove it to save disk space, this is not the correct method.
    – pretz
    Commented Jul 7, 2019 at 23:05
  • This worked for me today, but only for the data containers created to run a simulator. The terminal command 'xcrun simctl delete unavailable' cleaned up a lot of the rest. Deleting simulators in Xcode -> Settings -> Platforms deleted many runtimes including those in the .dmg files in '/Library/Developer/CoreSimulator/Images'. For the remaining old runtimes that did not appear in Xcode, I deleted them manually. (went from 70 GB free to 136 GB free.) Commented Aug 22, 2023 at 22:56
83

Xcode now shares the simulators with all users. So, you need to remove the simulators from the following folder:

/Library/Developer/CoreSimulator/Profiles/Runtimes

For example:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes
sudo rm -rf iOS\ 8.4.simruntime/
sudo rm -rf iOS\ 9.3.simruntime/

Cheers!

1
  • 6
    strangely there are 12.0 and 13.4 runtimes in there but no 14.x runtimes. Where did they go in xcode 12???? Commented Dec 3, 2020 at 12:59
82

You can easily remove all unavailable simulators with this command in the terminal:

xcrun simctl delete unavailable
0
32

Where Xcode stores simulators in 2019+ Catalina, Xcode 11.0

Runtimes

$ open /Library/Developer/CoreSimulator/Profiles/Runtimes

For example: iOS 13.0, watchOS 6.0 These take the most space, by far. Each one can be up to ~5GB

Devices

$ open ~/Library/Developer/CoreSimulator/Devices

For example: iPhone Xr, iPhone 11 Pro Max. These are typically <15 mb each.

Explanation

Simulators are split between runtimes and devices. If you run $ xcrun simctl list you can see an overview, but if you want to find the physical location of these simulators, look in these directories I've shown.

It's totally safe to delete runtimes you don't support. You can reinstall these later if you want.

0
24

Despite @fsb's answer allows to delete simulator "instances" the right way to free a massive space used by old simulator platforms not needed anymore is going to the following folder:

~/Library/Developer/Xcode/iOS DeviceSupport

and remove the folders corresponding to the simulator/platforms you don't need anymore.

Additionally, there is a very good article including this and other tips:

0
19
  • to list all simulator devices xcrun simctl list devices or xcrun simctl list --json

  • to delete all simulator devices xcrun simctl delete all

  • to delete a specific device xcrun simctl delete <device udid>

  • to remove old devices for runtimes that are no longer supported xcrun simctl delete unavailable

0
3

To delete simulators by iOS version:

If you only want to remove simulators for a specific version, and you happen to have fastlane installed, you can launch an interactive ruby shell and run the following commands to remove all iOS 10 simulators:

# launch the interactive ruby shell (irb)
$ irb

# require the device manager capabilities of fastlane core
irb(main):001:0> require 'fastlane_core/device_manager'

# delete all iOS 10 simulators
irb(main):002:0> FastlaneCore::Simulator.delete_all_by_version(os_version: "10.0")
2

In newer versions of macOS (e.g. macOS 13 - Ventura), you can clean up a lot of Xcode and Device Support files via "System Settings" (Preferences).

  1. Click "System Settings..." from the Apple menu in the top-left corner.
  2. Select "General"
  3. Select "Storage"
  4. Click the (i) next to "Developer"
  5. Select the rows (iOS Device Support versions, Xcode Caches, etc.) you don't need
  6. Click "Delete"

I was able to free up a lot more space using this Settings page. Just before I did this, I had run @beryllium's answer (i.e. "xcrun simctl delete unavailable" in Terminal), which also cleaned up a lot of disk space, so I'm not sure if the Settings page would have cleaned up those files too. To be sure, I'd recommend also running "xcrun simctl delete unavailable" in the terminal, after the steps above, to see if it frees up more.

For reference, I was able to clean up another 53 GB using the Storage settings page, after I had already cleaned up all the unneeded files under ~/Library/Developer/CoreSimulator/Devices using xcrun.

0
1

Beside the regular simulator devices in the known location (~/Library/Developer/CoreSimulator/Devices/), Xcode now creates automatically simulator devices "behind your back" for SwiftUI previews, Interface Builder, Playgrounds and Parallel Testing. They also might take up some space after a while.

So it might be useful to delete them all using the commands below:

xcrun simctl --set playgrounds delete all
xcrun simctl --set previews delete all
xcrun simctl --set interfacebuilder delete all
xcrun simctl --set testing delete all
0

Most of the disk space is used by just one subfolder under each *.platform folder inside Xcode.app, Library/Developer/CoreSimulator/Profiles/Runtimes (so eg /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes).

If you just delete the *.platform folders then Xcode crashes a few seconds after launching, but removing just the Runtimes subfolder under them seems to be OK - for the version I have at least, 13.4.1.

I did this:

backup=~/xcode-smallen
subfolder=Library/Developer/CoreSimulator/Profiles/Runtimes

for f in /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform ; do
  platform=`basename $f`
  target=$backup/$platform/$subfolder
  mkdir -p $target
  mv $f/$subfolder $target
done

and Xcode now only needs 11GB (7GB compressed) and it still launches and compiles projects just fine. So this seems to be the ticket for now.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .