Xcode Simulator: як видалити старі непотрібні пристрої?


210

Я використовую 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"). Я хочу зменшити безлад у меню "Схема".

Ніхто з списку Xcode Apple не знав відповіді!

EDIT: зауважте, що багато чого змінилося з Xcode 4.3, тому пропонуйте будь-кому прочитати цей погляд на всі відповіді. Найновіші з них, такі як Стів Мозер, можуть вам корисніше!

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

Якщо ви розробник iOS, виконайте це:
$ xcrun simctl delete unavailable
Це видаляє старі симулятори Xcode більше не використовуються. Для мене це було 6Gb Не спробував сам ...

[Також я щойно бачив, як Рус Бішоп згадував це в коментарі нижче вже ...]

Відповіді:


172

Ви намагалися просто видалити 4.3 SDK з пакета Xcode?

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

також видаліть відповідний .dmg файл у

~ / Бібліотека / Кеші / com.apple.dt.Xcode / Завантаження

щоб запобігти повторній установці того ж пакету Xcode .


для XCode> = 6 див. відповідь @ praveen-matanam


3
Ви геній! Дуже дякую! Не можу повірити, що ніхто з Xcode listserv не знав цього. Я дивлюся в декількох місцях, але не там, де ти запропонував.
Девід Н

Це не працюватиме в xcode 4.5.2. Щойно ви запускаєте заново компілятор, він попросить встановити старіші застарілі пристрої знову. Скасувати закриє xcode, тому ви змушені встановити знову.
Алехандро Луенго

Ось так, Алехандро, схоже, Apple змінила "ліцензійну річ", так що вам завжди потрібен дійсний обліковий запис розробника, і вам доведеться встановлювати всі розширення знову і знову на кожне велике оновлення в додатку.
childno͡.de

1
Дивіться відповідь Дена Риза нижче, щоб дізнатися, що працює на Xcode 4.6.
BJ Гомер

2
Працював для Xcode 6.3.1, разом з цією відповіддю stackoverflow.com/a/30206853/286618 . Очистили стару документацію та заощадили 9 ГБ !!!
RoLYroLLs

203

У Xcode 6+ ви можете просто зайти в Меню> Вікно> Пристрої> Симулятори та видалити тренажер, який вам не потрібен.


1
Питання було актуальним у версії 4 та, ймовірно, 5. Як бачите, це було досить складно. З тих пір я уникав використовувати старші тренажери.
Девід Н

3
Це правильно. Якщо ви хочете імітатори бути « на насправді немає» або встановіть їх в Xcode -> Налаштування -> Файли для завантаження ви повинні видалити імітатора виконання як було зазначено нижче stackoverflow.com/a/30206853/1344293
mathz

Завдяки цьому найпростіший спосіб управління тренажерами. замість видалення тренажерів із папок xcode. Це працює для мене :)
Chirag

Як видалити пристрій зі старішою версією iOS? У вікні пристроїв відображаються лише тренажери з iOS 9.1 (на Xcode 7.1). Я хотів би уникати редагування device_set.plist та видалення папок у Finder.
біо

Ви також можете використовувати цей сценарій для відтворення тренажерів: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g

154

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


6.4 тут. Потрібно перезапустити машину, щоб вона набула чинності.
aasatt

2
7.2 - не потрібно перезавантажувати
TheEye

xcode 8.0 потребував перезавантаження, щоб очистити недійсні симулятори у вікні пристроїв
Doug Amos

2
@thiagoveloso це тому, що ви не встановили жодної іншої версії тренажерів, а iOS 10.0+. У мене там було лише 9,3, 8,4 та 8,3 .simruntimeфайлів
Олексій Потапов

1
Я також можу бути в~/Library/Developer/...
Роберто

125

Оновлення жовтня 2018 року

Як уже згадувалося, ви можете використовувати xcrunдля виконання кількох речей:

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

Більше можливостей xcrun(див. Фрагмент коду)

Оригінальний відповідь

Вересень 2017 року, Xcode 9

Час виконання

Ви знайдете їх тут:

/Library/Developer/CoreSimulator/Profiles/Runtimes

введіть тут опис зображення

Прилади

Щоб видалити пристрої, перейдіть сюди:

~/Library/Developer/CoreSimulator/Devices

Набагато простіше видалити їх за допомогою Xcode: Xcode-> Window-> Devices and Simulators введіть тут опис зображення

Допомога Xcode "забути" про час виконання та запобігти їх повторній установці - видаліть тут файли .dmg:

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

Сподіваюся, це комусь допоможе 🙂


8
Будь ласка, не видаляйте пристрої з файлової системи; використання xcrun simctl delete <device udid>. Ви також можете запустити, xcrun simctl delete unavailableщоб видалити старі пристрої під час виконання, які більше не підтримуються.
russbishop

1
У мене немає ~ / Library / Caches / com.apple.dt.Xcode / Downloads (немає папки завантажень у ~ / Library / Caches / com.apple.dt.Xcode /), цікаво, чому
auspicious99

1
шлях до папки, який ви перерахували, не існує, Xcode 9.4
Peter Cullen

Це те, що я шукав: не видаляючи 12.2 модельованих пристроїв один за одним, а видаляючи весь симулятор 12.2 із системи. Шлях працював з XCode 10.3. Після видалення мені довелося його перезапустити, і кількість тренажерів просто скоротилася вдвічі.
катанора

77

Запустіть цю команду в терміналі, щоб видалити тренажери, до яких не можна отримати доступ з поточної версії Xcode (8+?), Яка використовується на вашій машині.

xcrun simctl delete unavailable

Крім того, якщо ви хочете повернути простір, пов'язаний з тренажером, Майкл Цай виявив, що видалення sim-журналів заощадило йому 30 ГБ.

~/Library/Logs/CoreSimulator

2
Дякую! Очевидно, що первісне питання стосувалося Xcode 4, тому з тих пір все сильно змінилося!
Девід Н

2
Він випускає майже 20 Гб для мене. Спасибі
Libor Zapletal

26

Xcode 4.6 запропонує перевстановити будь-які старі версії iOS Simulator, якщо ви просто видалите SDK. Щоб уникнути цього, ви також повинні видалити кеш Xcode. Тоді ви не будете змушені перевстановлювати старіший SDK при запуску.

Щоб видалити симулятор iOS 5.0, видаліть їх та перезапустіть Xcode:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. ~ / Бібліотека / Кеші / com.apple.dt.Xcode

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


1
Кілька більш точну відповідь тут , хоча я не перевіряв це сам ще.
Dan Reese

21

У мене була така ж проблема. Мені не вистачало місця.

Видалення старих тренажерів пристроїв НЕ допомогло.

Мою проблему з простором викликав xCode. Він зберігав копію кожної версії iOS на моєму macOS з моменту встановлення xCode.

Видаліть версію iOS, яку ви не хочете, і звільніть місце на диску. Я заощадив 50 Гб + місця.

введіть тут опис зображення ПРИМІТКА -> якщо у вас є кілька користувачів на одному пристрої macOS, обов'язково знайдіть каталог ТІЛЬКИ з обліковим записом користувача, який спочатку встановив xCode.


Я рахую 9G вище - як ви відновили 75G?
Девід Н

привіт @DavidH - до мого прибирання було 75 Гб. Оскільки я працюю з xCode протягом багатьох років, xCode мовчки встановлював усі варіанти iOS 7, 8, 9 та 10 на моїй машині. Насправді мені, мабуть, потрібні лише iOS10 та iOS11, ідучи вперед.
rustyMagnet

1
Це чудово - я ніколи не знав про це місце. У мене було десятки Гб тут, встановивши будь-яку версію Xcode, коли-небудь.
Ешелон

Папка існує з xCode 9.4 @PeterCullen. Ви просто повинні отримати доступ до нього з облікового запису користувача, який спочатку встановив xCode. У мене на комп'ютері Mac два облікові записи користувачів, які мають спільний xCode. Лише обліковий запис користувача, який встановив xCode, може переглядати цю папку.
rustyMagnet

1
Ви відкриваєте Finder і вибираєте "Перейти до папки"? Бібліотека - це прихована папка за замовчуванням.
rustyMagnet

9

Дотримуючись деяких відповідей тут, видаляючи деякі тренажери з мого меню Xcode> Вікно> Пристрої> Симулятори не зробили нічого, щоб допомогти моєму дисковому простору: введіть тут опис зображення

однак, cd ~/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 ГБ!

Наступила кров’яна ванна

дивіться більше деталей тут


6

Окрім відповіді @ 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 вручну


4

У XCode відкрийте вікно - пристрої, потім виберіть і видаліть застарілі тренажери.


3

Ще одна річ, яку ви можете зробити, - це змінити ціль Розгортання на найвище значення. Це не дозволить Меню схем відображати старіші версії.

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


Можливо, щось змінилося з моменту розміщення питання, але коли я це зробив, ви побачили різні тренажери в меню Схеми, і це просто ускладнило вибір правильного.
Девід Н

3

Я спробував усі відповіді. Жоден з них не працював на мене.

Що працювало для мене на Sierra + Xcode 8.2:

/Library/Developer/CoreSimulator/Devices та видалення всіх пристроїв.

(Може бути , це не буде працювати для вас, може бути , це є рішенням як автономний, або , може бути , ви повинні зробити це на додаток до інших відповіді, але я зробив все рішення тут і тому не впевнений , що зробив вчинок). Просто майте на увазі, що деякі відповіді тут давні, і місце тренажеру змінилося. Відповідь Snowcrash здається найсвіжішою.


Чи можу я припустити, що ви спочатку закрили Xcode, зробили це, а потім перезапустили Xcode?
Девід Н

@DavidH вибачте, що не пам'ятаю, що я зробив. У мене це питання було 3-4 тижні. Кожен раз, коли це відбувалося, коли я перемикався між проектами / sim-пристроями ... Я просто спробував усе, і це, здавалося, зробило це для мене ... знову це може щось інше для вас
Honey

@DavidH Ви також спробували цю відповідь
Мед

Для Xcode 10 і новіше папка: ~/Library/Developer/CoreSimulator/Devices.
blackjacx

3

Я написав однорядковий скрипт 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

2

Проблема цих відповідей полягає в тому, що з кожним оновленням Xcode меню та місця розташування змінюватимуться.

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


2
Я серйозно сумніваюся, що Xcode завантажує тренажери, ви вимагаєте його пакет. Звичайно, вони заходять у бібліотеку користувачів, ні? Це означає, що я ніколи не завантажував старіший з моєї проблеми з Xcode 4.
David H

Для кожної платформи (iOS, watchOS, AppleTVOS, MacOS) у мене є 2 папки: у мене є "iPhoneOS.platform" та "iPhoneSimulator.platform", яку я хочу видалити? Я поспілкувався з колегою, у нього було саме те, і інше, але жодних проблем. Причина, що я насправді тут, через цю проблему, і хтось сказав мені, що у мене є 2 тренажери / Xcodes, але якщо я не зробив це правильно, я ' я видалив мою іншу версію Xcode, а також я видалив 9.3 час виконання ...
Honey

1
Будь ласка, будь ласка, не робіть цього. Ніхто не повинен возитися з вмістом всередині пакета Xcode.
єпископ

2

Деякі намагаються виправити це одним способом, а другим. В основному, є 2 питання, які, якщо ви перевірите їх і вирішите обидва - у 99% це має вирішити:

  1. Старі тренажери пристроїв, розташовані за адресою YOUR_MAC_NAME(наприклад Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Залиште там, найновіший, на сьогодні це 13.2.3 (17B111), але в майбутньому це зміниться. Найбільша кількість (тут 13.2.3) версії iOS вказує на те, що вона новіша.

  2. Після цього перерахуйте свої пристрої Terminal, запустивши xcrun simctl list devices. Багато з них може бути unavailable, тому видаліть їх запуском xcrun simctl delete unavailable. Це також звільнить місце. Щоб переконатися, що все в порядку, перевірте це ще раз, запустивши xcrun simctl list devices. Ви повинні бачити пристрої лише з новітньої версії (тут 13.2.3), як показано на скріншоті нижче.

введіть тут опис зображення

Як бонус, який трохи менше стосується цього питання, але все ж є безкоштовним. Перейдіть до YOUR_MAC_NAME(наприклад Macintosh) -> Users-> YOUR_USERNAME(наприклад daniel) -> Library-> Developer-> Xcode->Archives . Ви побачите безліч заархівованих розгорнутих програм, швидше за все, вони вам не потрібні. Спробуйте видалити ці, які вже не використовуються.

Використовуючи ці 2 методи та метод бонусу, я зміг отримати додаткові 15 ГБ місця на моєму Mac.

PS. Просто видалити тренажери з Xcode, перейшовши до Xcode-> Window-> Devices and Simulators-> Simulators(або просто CMD+ SHIFT+ 2при використанні комбінації клавіш) та видаливши його там не допоможе. Вам дійсно потрібно піти на описані кроки.


-2

Команда + пробіл

Тип "тренажер"

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

клацніть правою кнопкою миші на ньому в доці, а потім виберіть Опції> "Показати в Finder"

Закрийте додаток, а потім видаліть його з папки.

:)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.