57

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

  • 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. – user3439894 Nov 22 '17 at 14:26
  • 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). – user3439894 Nov 22 '17 at 15:26
  • What program is helping you determine these large files on your drive? – Pysis Nov 22 '17 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. – Zach Lipton Nov 22 '17 at 22:54
  • 1
    @Zach Lipton, If the OP is running High Sierra and APFS then the files may not compressed because APFS does not yet support compression. Or did this change in 10.13.1? – user3439894 Nov 22 '17 at 23:36
54

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.

  • 3
    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. – Sean Patterson Jul 7 at 23:05
24

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!

21

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

xcrun simctl delete unavailable
  • In reality, this doesn't do much. If you run xcrun simctl list you will see that only ~10% of devices are considered "unavailable". Also devices aren't the real space hogs here. iOS runtimes are. @Francois's answer is much better in practice. – joshuakcockrell Sep 13 at 19:31
12

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 with other this and other tips:

  • 3
    it seems that /Library/Developer/Xcode has been removed after the new macOS update. I can't find it anywhere. – Suhaib Jul 1 '18 at 19:36
  • 1
    @Suhaib you forgot the initial tilde "~" which makes the path start on your home directory. The right directory is: ~/Library/Developer/Xcode/iOS DeviceSupport. – Ricardo Barroso Sep 17 '18 at 23:41
2
  • to list all simulators xcrun simctl list devices or xcrun simctl list --json

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

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

1

Open Terminal.app and run the following:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

Now type the iOS version for which you want to remove simulators in below command, for e.g., if you want to remove for iOS 12.0, run:

sudo rm -rf iOS\ 12.0.simruntime/

1

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")
0

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.

New contributor
joshuakcockrell is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

You must log in to answer this question.

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