Question

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

Was it helpful?

Solution

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.

OTHER TIPS

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

xcrun simctl delete unavailable

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!

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.

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:

  • 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

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

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/

Run below command in order to remove unsupported simulators. It will empty lot of space

xcrun simctl delete unavailable
Licensed under: CC-BY-SA with attribution
Not affiliated with apple.stackexchange
scroll top