Чи можна видалити непотрібні тренажери пристрою Xcode?


64

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

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

Мені хотілося б знати, чи можу я видалити каталоги цих платформ безпосередньо?

Довідники


Просто ПІІ ... Ви збираєтесь лише приблизно половину показаного місця, оскільки вони здаються стисненими. Подивіться на лист Інформація про отримання інформації, наприклад, у моїй системі для WatchOS.platform він показує 50579,830 байт (28,2 Мб на диску) для 2212 елементів, а AppleTVSimulator.platform показує 1,865,477,227 байт (1,1 ГБ на диску) для 29,705 елементів. Таким чином, ви не збираєтеся отримувати стільки вільного місця, скільки значення, показані у вашій ОП.
користувач3439894

Файли стискаються, а файлова система HFS + Apples підтримує прозоре стиснення, але Finder і lsв терміналі не вистачає прапора, щоб побачити, як файл використовує hfsCompression , запускає лист отримання інформації, де ви можете побачити, що значення на диску різко відрізняється, ніж розмір показується в байтах . Існує утиліта, написана третьою стороною, яка включає вихідний код, якщо хтось хоче скомпілювати його, afsctool . Серед його можливостей є отримання інформації про існуючі стиснуті файли HFS +.
користувач3439894

Яка програма допомагає визначити ці великі файли на диску?
Pysis

1
@Pysis Мені схоже на OmniDiskSweeper . Цей інструмент не оновлювався для APFS та стиснення, хоча, схоже, зараз у них є нові тестові розробки.
Зак Ліптон

1
@Zach Lipton, Якщо ОП працює у високій Сьєррі та APFS, файли можуть не стискатися, оскільки APFS ще не підтримує стиснення. Або це змінилося в 10.13.1?
користувач3439894

Відповіді:


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. Я не можу його знайти ніде.
Suhaib

1
@Suhaib ви забули початковий тильд " ~ ", який робить шлях починається у вашому домашньому каталозі. Правий каталог: ~/Library/Developer/Xcode/iOS DeviceSupport.
Рікардо Баррозу

7

Там, де Xcode зберігає тренажери у 2019 році + Каталіна, Xcode 11.0

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

$ 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ви можете побачити огляд, але якщо ви хочете знайти фізичне розташування цих тренажерів, погляньте в ці показані мені каталоги.

Видалити умови виконання, які ви не підтримуєте, цілком безпечно. Ви можете перевстановити їх пізніше, якщо хочете.


1
Дякую, це мені дуже допомогло!
acido

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/


1

Щоб видалити тренажери за версією iOS:

Якщо ви хочете видалити тренажери лише для певної версії, а у вас випадково fastlaneвстановлена ​​програма, ви можете запустити інтерактивну оболонку рубіну та виконати наступні команди для видалення всіх тренажерів 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")
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.