it-swarm.com.ru

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

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

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

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

Никто из списков рассылки Apple Xcode не знал ответа!

Правка: обратите внимание, что многое изменилось с Xcode 4.3, поэтому рекомендуем всем, кто читает этот взгляд на все ответы. Новейшие, такие как Стив Мозер, могут быть более полезными для вас!

Правка 10/2017: Опубликовано в Twitter Хулио Карреттони

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

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

187
David H

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

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

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

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

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


для XCode> = 6 см. ответ @ praveen-matanam

158
childno͡.de

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

194
tomi44g

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

136
Praveen Matanam

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

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

  • 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

Оригинальный ответ

Сентябрь 2017, Xcode 9

Runtimes

Вы найдете их здесь:

/Library/Developer/CoreSimulator/Profiles/Runtimes

enter image description here

Приборы

Для удаления устройства перейдите сюда:

~/Library/Developer/CoreSimulator/Devices

Намного проще удалить их, используя Xcode: Xcode-> Window-> Devices and Simulators enter image description here

Помогите Xcode "забыть" о средах выполнения и предотвратить их переустановку - удалите файлы .dmg здесь:

~/Library/Caches/com.Apple.dt.Xcode/Downloads

Надеюсь это кому-нибудь поможет ????

82
Pavel Kovalev

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

xcrun simctl delete unavailable

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

~/Library/Logs/CoreSimulator
67
Steve Moser

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

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

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

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

24
Dan Reese

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

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

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

enter image description hereNOTE -> если на одном компьютере MacOS несколько пользователей, обязательно найдите каталог ТОЛЬКО с той учетной записью, которая изначально установлен xCode.

14
rustyMagnet

следуя некоторым из ответов здесь, удаление некоторых симуляторов из моего меню 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 ГБ!

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

увидеть больше деталей здесь

5
abbood

В дополнение к ответу @ 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*"

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

5
Raymond

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

3
catanore

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

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

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

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

2
Honey

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

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

2
werdsackjon

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

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

1
Snowcrash

Я написал однострочный сценарий 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
1
Toland Hon