Можно ли удалить ненужные симуляторы устройства из Xcode?

64

Я обнаружил, что XCode на моем ноутбуке занимает большую часть его памяти, поэтому я пытаюсь удалить ненужные файлы в XCode.

Есть четыре каталога под Application/Xcode.app/Contents/Developer/Platforms/. Я чувствую это WatchSimulator.platformи AppleTVSimulator.platformне нужно, потому что я использую Xcode почти только для базовой разработки под iOS.

Я хотел бы знать, могу ли я удалить эти каталоги платформ напрямую?

Справочники

IzumiSy
источник
Просто к вашему сведению ... Вы получите только половину показанного пространства, поскольку они выглядят сжатыми. Посмотрите на лист получения информации, например, в моей системе для платформы WatchOS. На ней показано 50 579 830 байт (28,2 МБ на диске) для 2212 элементов, а на платформе AppleTVSimulator.platform - 1 865 477 227 байт (1,1 ГБ на диске) для 29 705 элементов. Таким образом, вы не получите столько свободного места, сколько указано в вашем ОП.
user3439894
Файлы сжимаются, и файловая система HFS + от Apple поддерживает прозрачное сжатие, но в Finder и lsв терминале отсутствует флаг, позволяющий увидеть, что файл использует hfsCompression , без таблицы сведений , где можно увидеть, что значение на диске значительно отличается от размера, отображаемого в байтах. , Существует утилита, написанная третьей стороной, которая включает исходный код, если вы хотите скомпилировать его самостоятельно, afsctool . Среди его возможностей - получение информации о существующих сжатых файлах HFS +.
user3439894
Какая программа помогает вам определить эти большие файлы на вашем диске?
Пизис
1
@Pysis Похоже, OmniDiskSweeper для меня. Этот инструмент не был обновлен для APFS и сжатия, хотя, похоже, сейчас у них есть несколько новых тестовых сборок.
Зак Липтон
1
@ Zach Lipton, если OP использует High Sierra и APFS, файлы могут не сжиматься, потому что APFS еще не поддерживает сжатие. Или это изменилось в 10.13.1?
user3439894

Ответы:

63

Да, вы можете удалить любой симулятор, который вы не используете. Я делаю это регулярно, когда перестаю поддерживать старые версии iOS.

Если вы удалите их, а затем обнаружите, что они вам понадобятся в будущем, вы можете повторно загрузить их с сайта разработчика Apple.

Лучший способ удалить их в Xcode. Перейти к Window -> Devices and Simulators. Это откроет новое окно со всеми устройствами, которые вы используете в XCode.

Вверху нажмите на, Simulatorsи вы увидите список слева.

Оттуда найдите симулятор, который вы хотите удалить, и Cntl- щелкните (или щелкните правой кнопкой мыши) и выберите Delete.

Я делаю это с каждым симулятором, который работает в каждой версии iOS, которую я больше не поддерживаю.

ФСБ
источник
8
Я знаю, что этому посту уже пару лет, но похоже, что он не удаляет симулятор, а просто перечисляет его в Xcode. Так что если нужно было удалить его, чтобы сэкономить место на диске, это не правильный метод.
Шон Паттерсон
34

Xcode теперь делится симуляторами со всеми пользователями. Итак, вам нужно удалить симуляторы из следующей папки:

/Library/Developer/CoreSimulator/Profiles/Runtimes

Например:

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

Ура!

Франсуа Надо
источник
29

Вы можете легко удалить все недоступные симуляторы с помощью этой команды в терминале:

xcrun simctl delete unavailable
бериллий
источник
1
На самом деле это мало что дает. Если вы запустите, xcrun simctl listвы увидите, что только ~ 10% устройств считаются «недоступными». Также устройства здесь не настоящие космические свиньи. iOS работает. Ответ @ Франсуа намного лучше на практике.
joshuakcockrell
1
@joshuakcockrell Не обязательно; после многих лет накопления устаревших версий симуляторов это освободило мне нелепое пространство. Так что я думаю, мммм.
Пол Кантрелл
Я насчитал ( wc -l) 148 строк в списке с «недоступными» и 128 из них. Приведенная выше команда удаления вернула мне 14 ГБ
Крейг
15

Несмотря на то, что ответ @ fsb позволяет удалить «экземпляры» симулятора, правильный путь для освобождения огромного пространства, используемого старыми платформами симулятора, который больше не нужен, идет в следующую папку:

~/Library/Developer/Xcode/iOS DeviceSupport

и удалите папки, соответствующие симулятору / платформам, которые вам больше не нужны.

Кроме того, есть очень хорошая статья с другими этим и другими советами:

Рикардо Баррозу
источник
3
кажется, что /Library/Developer/Xcodeбыл удален после нового обновления MacOS. Я не могу найти это нигде.
Сухайб
1
@Suhaib вы забыли начальную тильду " ~ ", которая заставляет начать путь в вашем домашнем каталоге. Правый каталог: ~/Library/Developer/Xcode/iOS DeviceSupport.
Рикардо Баррозу
7

Где Xcode хранит симуляторы в 2019+ Catalina, Xcode 11.0

Runtimes

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

Например: iOS 13.0, watchOS 6.0Они принимают наибольшее пространство, на сегодняшний день. Каждый может быть до ~ 5 ГБ

приборы

$ open ~/Library/Developer/CoreSimulator/Devices

Например: iPhone Xr, iPhone 11 Pro Max. Обычно это <15 мб каждый.

объяснение

Симуляторы разделены между средами выполнения и устройствами. Если вы запускаете, $ xcrun simctl listвы можете увидеть обзор, но если вы хотите найти физическое местоположение этих симуляторов, посмотрите в этих каталогах, которые я показал.

Абсолютно безопасно удалять среды выполнения, которые вы не поддерживаете. Вы можете переустановить их позже, если хотите.

joshuakcockrell
источник
1
Спасибо, это мне очень помогло!
ацидо
5
  • перечислить все симуляторы xcrun simctl list devicesилиxcrun simctl list --json

  • удалить конкретное устройство xcrun simctl delete <device udid>

  • удалить старые устройства для сред выполнения, которые больше не поддерживаются xcrun simctl delete unavailable

Джасмит Сингх
источник
Вы можете использовать, xcrun simctl delete allя полагаю
revau.lt
1

Откройте Terminal.app и запустите следующее:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

Теперь введите версию iOS, для которой вы хотите удалить симуляторы, в приведенной ниже команде, например, если вы хотите удалить для iOS 12.0, запустите:

sudo rm -rf iOS\ 12.0.simruntime/

Tejinder
источник
1

Чтобы удалить симуляторы по версии iOS:

Если вы хотите удалить симуляторы только для конкретной версии и у вас fastlaneустановлена ​​программа, вы можете запустить интерактивную оболочку ruby ​​и выполнить следующие команды, чтобы удалить все симуляторы iOS 10:

# 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")
flo_23
источник