Xcode Simulator: как удалить старые ненужные устройства?

Я использую Xcode 4.3.1 iOS-Simulator, который изначально поддерживает только iOS 5.1.

Мне нужно протестировать мой код с iOS 4.3, поэтому я использовал функцию "Установить" XCode, чтобы установить его, как описано в "Установка XCode с имитатором устройства iOS 4.3?"

Теперь я закончил тестирование, но не могу найти способ удалить части 4.3 ("iPhone 4.3 Simulator" и "iPad 4.3 Simulator"). Я хочу уменьшить беспорядок в меню Схемы.

Никто в Apple Xcode listserv не знал ответа!

РЕДАКТИРОВАТЬ: обратите внимание, что многое изменилось с Xcode 4.3, поэтому рекомендуем всем, кто читает этот взгляд на все ответы. Новейшие, такие как Стив Мозер, могут быть более полезными для вас!

РЕДАКТИРОВАТЬ 10/2017: Опубликовано в Twitter Хулио Карреттони

Если вы являетесь разработчиком iOS, выполните это:
$ xcrun simctl delete unavailable
Удаляет старые симуляторы Xcode, которые больше не используются. Для меня это был 6Gb Сам не пробовал...

[Кроме того, я только что видел, как Расс Бишоп упомянул об этом в комментарии ниже...]

Ответ 1

Вы пытались просто удалить 4.3 SDK из пакета Xcode?

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

также удалите соответствующий .dmg файл в

~/Library/кэша/com.apple.dt.Xcode/Загрузки

to предотвратить повторную установку Xcode в тот же пакет.


для XCode >= 6 см. @praveen-matanam answer

Ответ 2

В Xcode 6+ вы можете просто перейти в Меню > Окно > Устройствa > Симуляторы и удалить симулятор, который вам не нужен.

Ответ 3

В Xcode 6 и выше вы можете найти и удалить симуляторы с пути /Library/Developer/CoreSimulator/Profiles/Runtimes. Перезапустите Xcode, чтобы вступить в силу (может и не понадобиться).

Ответ 4

Октябрь 2018 обновление

Как уже упоминалось, вы можете использовать xcrun чтобы сделать несколько вещей:

  • xcrun simctl list devices xcrun simctl list --json или xcrun simctl list devices xcrun simctl list --json для отображения списка всех симуляторов
  • xcrun simctl delete <device udid> для удаления определенного устройства
  • xcrun simctl delete unavailable чтобы удалить старые устройства для сред выполнения, которые больше не поддерживаются

Больше вещей, которые вы можете сделать с помощью xcrun (см. Фрагмент кода)

- 'xcrun simctl boot <device udid>' to launch (multiple) simulators
- 'xcrun simctl io booted recordVideo — type=mp4 ./test.mp4' to record simulator video
- 'xcrun simctl io booted screenshot ./screen.png' to make screenshot of simulator
- 'xcrun simctl openurl booted https://google.com' to open URL in simulator
- 'xcrun simctl addmedia booted ./test.mp4' to upload photo or video file (for photos app)
- 'xcrun simctl get_app_container booted <your apps bundle identifier>' to find the app container (where identifier is like *com.bundle.identifier*)
- 'xcrun simctl help' to explore **more** commands

Ответ 5

Запустите эту команду в терминале, чтобы удалить симуляторы, к которым нет доступа из текущей версии Xcode (8+?), Используемой на вашем компьютере.

xcrun simctl delete unavailable

Также, если вы хотите освободить место, связанное с симулятором, Майкл Цай обнаружил, что удаление журналов сима сэкономило ему 30 ГБ.

~/Library/Logs/CoreSimulator

Ответ 6

Xcode 4.6 предложит вам переустановить все более старые версии симулятора iOS, если вы просто удалите SDK. Чтобы этого избежать, вы также должны удалить кеш Xcode. Затем вы не будете вынуждены переустанавливать старый SDK при запуске.

Чтобы удалить симулятор iOS 5.0, удалите их, а затем перезапустите Xcode:

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  • ~/Library/кэша/com.apple.dt.Xcode

Например, после чистой установки Xcode я установил симулятор iOS 5.0 из настроек Xcode. Позже я решил, что 5.1 достаточно, но не смог удалить версию 5.0. Xcode продолжал заставлять меня переустанавливать его при запуске. После удаления как файла кеша, так и SDK его больше не спрашивали.

Ответ 7

У меня такая же проблема. Мне не хватало места. Удаление старых симуляторов устройства НЕ помогло.

Моя проблема с пространством была вызвана xCode. Он сохранил все версии iOS с тех пор, как я установил xCode.

Удалите ненужную версию iOS и освободите место на диске. Я сэкономил 50GB+ места.

enter image description here ПРИМЕЧАНИЕ. > Если на одном компьютере с MacOS несколько пользователей, обязательно найдите каталог ТОЛЬКО с учетной записью пользователя, которая изначально установила xCode.

Ответ 8

В дополнение к ответу @childno.de ваш каталог Mac

/private/var/db/receipts/

может содержать устаревшие файлы iPhoneSimulatorSDK .bom и .plist, подобные этому:

/private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.bom /private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.plist

Это может привести к тому, что вкладка "Загрузки" настроек Xcode покажет галочку () для этой устаревшей версии симулятора.

Чтобы очистить нежелательные симуляторы, вы можете выполнить поиск с помощью этой команды bash с вашего терминала Mac:

sudo find / -name "*PhoneSimulator*"

Затем перейдите в соответствующие каталоги, чтобы вручную удалить нежелательные SimulatorSDKs

Ответ 9

следуя некоторым из ответов здесь, удаление некоторых симуляторов из моего меню xcode> Окно> Устройства> Симуляторы не помогло моему умирающему месту на диске: enter image description here

однако, зайдя в /Users/abdullah/Library/Developer/Xcode/iOS DeviceSupport и запустив du -sh * я получил все эти ребята:

2.9G    10.0.1 (14A403)
1.3G    10.1.1 (14B100)
2.9G    10.3.2 (14F89)
1.3G    10.3.3 (14G60)
1.9G    11.0.1 (15A402)
1.9G    11.0.3 (15A432)
2.0G    11.1.2 (15B202)
2.0G    11.2 (15C114)
2.0G    11.2.1 (15C153)
2.0G    11.2.2 (15C202)
2.0G    11.2.6 (15D100)
2.0G    11.4 (15F79)
2.0G    11.4.1 (15G77)
2.3G    12.0 (16A366)
2.3G    12.0.1 (16A404)
2.3G    12.1 (16B92)

Все вместе, что 33 ГБ!

Кровавая баня последовала

подробности смотрите здесь

Ответ 10

В окне XCode open Window - Устройства, затем выберите и удалите устаревшие симуляторы.

Ответ 11

Еще одна вещь, которую вы можете сделать, - это изменить цель развертывания на самое высокое значение. Это предотвратит отображение в меню Схемы более старых версий.

Для этого перейдите по ссылке: Target- > Summary, затем измените цель развертывания.

Ответ 12

Я попробовал все ответы. Никто из них не работал у меня.

Что сработало для меня на Sierra + Xcode 8.2, я собирался:

/Library/Developer/CoreSimulator/Devices и удаление всех устройств.

(Возможно, это не сработает для вас, может быть, это решение как автономное, или, может быть, вам нужно сделать это в дополнение к другим ответам, но я сделал все решения здесь и поэтому не уверен, что сделал этот поступок), Просто имейте в виду, что некоторые из ответов здесь старые, и местоположение симулятора изменилось. Отчет о снегопаде, кажется, самый последний.

Ответ 13

Проблема с этими ответами заключается в том, что при каждом обновлении Xcode будут изменяться меню и местоположения.

Просто перейдите к /Applications/Xcode.app/Contents/Developer/Platforms и удалите то, что вам не нужно. Xcode начнет нормально работать. Если вас это касается, вы можете просто восстановить его из корзины.

Ответ 14

Я написал однострочный сценарий bash, который удалит ВСЕ ваши симуляторы:

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 xcrun simctl delete
  • xcrun simctl list devices отобразят список всех симуляторов, установленных на вашем компьютере.
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" будет захватывать устройство UUID
  • xargs -L1 xcrun simctl delete попытается удалить устройство для каждого найденного UUID

Если вы хотите увидеть все, что он выполнит, вы можете добавить echo перед xcrun, т.е.

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 echo xcrun simctl delete

Ответ 15

Command + Space

Введите "симулятор"

откройте старый бета-симулятор, который вам больше не нужен.

щелкните правой кнопкой мыши по нему в доке, затем выберите "Параметры" > "Показать в Finder"

Закройте приложение, затем удалите его из папки.

:)