Вернуться в блог

Xcode Simulator занимает место на Mac? Что чистить в первую очередь

Разберитесь, чем отличаются рантаймы симулятора от данных симулятора, что безопасно удалять и как освободить место на Mac, не сломав настройку iOS-разработки.

Опубликовано 1 апреля 2026 г. Автор Vladimir Chemeris Время чтения 10 мин чтения Обновлено 31 августа 2026 г.
XcodeSimulatorDeveloper Cleanup

Если Xcode Simulator занимает место на вашем Mac, сначала разделите рантаймы симулятора и данные устройств симулятора, прежде чем что-то удалять. Начните с проверки того, что недоступно, что неактивно и что ещё нужно для тестирования, потому что очистка симулятора становится рискованной, когда вы относитесь к каждой папке от Apple как к одноразовому кэшу.

Это ошибка, которую допускают разработчики, узнав одно правило очистки и применяя его везде. DerivedData — это одно. Рантаймы симулятора и состояние устройств — совсем другое.

Освободить место можно. Просто последствия менее однородны.

Главное правило: очищайте хранилище симулятора послойно. Сначала удаляйте недоступные устройства, очищайте данные устройств, только когда намерены их сбросить, и удаляйте рантаймы, только когда данная версия ОС больше не нужна.

Краткий ответ

  1. Проверьте, в чём реальный след: рантаймы симулятора, данные устройств симулятора или оба.
  2. Используйте xcrun simctl list devices и xcrun simctl list runtimes, прежде чем что-либо удалять.
  3. Удаляйте недоступные устройства сначала с помощью xcrun simctl delete unavailable, если они появляются в разделе недоступных.
  4. Используйте erase, только когда хотите сбросить содержимое и настройки устройства симулятора.
  5. Удаляйте рантаймы, только когда уверены, что данная платформенная версия больше не нужна для сборок, превью или тестирования.
  6. Если хранилище от Apple шире, чем только симуляторы, проверяйте DerivedData, Archives и CoreSimulator вместе, а не угадывайте по одной папке.
Разбор очистки CoreSimulator в StorageRadar: выбранные устройства-симуляторы, итог Dry Run и подтверждение перед применением
Очистка симулятора безопаснее, когда выделение, итог сухого прогона и шаг подтверждения остаются явными, а не скрытыми за широким сбросом.

Что такое CoreSimulator на Mac?

CoreSimulator — папка под управлением Apple, в которой Xcode держит рантаймы симуляторов и сами устройства-симуляторы для сборки и тестирования приложений iOS, iPadOS, watchOS и tvOS. На большинстве Mac она лежит по пути ~/Library/Developer/CoreSimulator и растёт по мере того, как вы добавляете рантаймы, создаёте устройства и накапливаете внутри них данные приложений.

Это не обычный кеш. В папке смешаны две разные вещи: образы рантаймов, от которых вы всё ещё зависите, и состояние устройств, которое во многих случаях можно сбросить или удалить. Поэтому у вопроса «CoreSimulator занимает десятки гигабайт» больше одного ответа.

Можно ли удалить папку CoreSimulator?

Целиком и вслепую — нет. Но большую часть места вы вернёте, если очистите нужный слой вместо удаления всего пути.

Если удалить ~/Library/Developer/CoreSimulator руками целиком, Xcode будет заново строить состояние симуляторов, а рантаймы, которые вам ещё нужны, исчезнут. Безопасный аналог — отдать эту работу собственному инструменту Apple simctl:

  • удалить устройства, которые текущий SDK больше не поддерживает, командой xcrun simctl delete unavailable;
  • сбросить содержимое и настройки устройства командой xcrun simctl erase <device>, когда проблема в раздутом состоянии приложений;
  • удалить рантайм командой xcrun simctl runtime delete только тогда, когда эта версия ОС больше не нужна для тестов.

Место в CoreSimulator возвращают послойно, а не удалением папки в надежде, что Xcode восстановится сам.

Что хранят симуляторы Xcode и почему это накапливается

Хранилище симулятора — это не что-то одно. Это несколько слоёв, которые накапливаются вместе.

В общих чертах хранилище симулятора Xcode обычно включает:

  • образы рантаймов для разных версий платформ iOS;
  • созданные устройства симулятора для разных моделей iPhone и iPad;
  • данные приложений, настройки и состояние внутри этих симуляторов для каждого устройства;
  • рабочие данные разработки от Apple, которые растут при переключении SDK, типов устройств и версий Xcode.

Поэтому разработчики часто не понимают CoreSimulator. Легко посмотреть на размер папки и решить, что это просто кэш. На практике часть этого похожа на одноразовое тестовое состояние, а часть — поддержка рантаймов, от которой вы всё ещё зависите.

Паттерн роста нормален:

  • вы устанавливаете новый Xcode или SDK;
  • появляются новые рантаймы;
  • создаются новые устройства симулятора;
  • внутри них накапливаются приложения, тестовые данные и настройки;
  • старые устройства становятся недоступными после изменений SDK или обновлений Xcode;
  • ничего не проверяется месяцами, потому что на машине ещё достаточно свободного места.

А потом однажды хранилище симулятора становится главной историей, а не просто деталью.

Рантаймы симулятора и данные симулятора: в чём разница?

Это самое важное различие.

Инструментарий simctl от Apple разделяет операции с рантаймами и операции с устройствами. Уже одно это говорит о том, что модель очистки многослойная: устройства — не то же самое, что рантаймы, а очистка устройства — не то же самое, что удаление образа рантайма.

СлойЧто представляетТипичное действие очисткиОсновной компромисс
Рантаймы симулятораОбразы ОС для загрузки конкретных платформенных версийsimctl runtime delete для рантайма, который действительно больше не нуженВы теряете этот рантайм для будущего использования симулятора, пока не добавите его заново
Устройства симулятораСозданные экземпляры симуляторов для конкретных моделей устройствsimctl delete <device> или delete unavailableЭкземпляр устройства исчезает
Содержимое и настройки устройствУстановленные приложения, данные приложений, настройки и состояние внутри устройстваsimctl erase <device>Устройство остаётся, но содержимое и настройки сбрасываются

Поэтому общие заявления вроде «просто очистите CoreSimulator» — слабый совет. Они сливают разные последствия очистки в одно эмоциональное действие.

Как DerivedData вписывается в картину

DerivedData смежна, но это не та же проблема.

DerivedData — это в основном сгенерированный вывод сборки. Хранилище симулятора более смешанное. Оно может включать рантаймы, которые ещё нужны, созданные устройства, которые больше не нужны, и состояние внутри устройств, которое может быть или не быть важным.

Если давление исходит в основном от сгенерированного вывода сборки, правильное руководство — Xcode DerivedData занимает слишком много места на Mac? Что чистить в первую очередь. Если давление — в основном от образов рантаймов и состояния симулятора, оставайтесь с рабочим процессом для симулятора.

Как проверить, сколько места занимают симуляторы

Первый шаг — инспекция, а не удаление.

Используйте собственный инструментарий Apple, чтобы увидеть, какие устройства и рантаймы реально существуют:

xcrun simctl list devices
xcrun simctl list runtimes

Если хотите оценить общий след хранилища от Apple на диске, можно также сравнить основные папки напрямую:

du -sh ~/Library/Developer/CoreSimulator
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Developer/Xcode/Archives

Это важно, потому что самая большая папка от Apple — не всегда та, которую вы предполагали. Иногда DerivedData — основная проблема. Иногда CoreSimulator незаметно обгоняет её.

Что искать в первую очередь

  • устройства в разделе Unavailable;
  • рантаймы для версий ОС, которые вы больше не тестируете;
  • много созданных устройств через несколько поколений рантаймов;
  • тяжёлое состояние симуляторов на машине, которая не чистилась с момента нескольких обновлений Xcode;
  • большая папка CoreSimulator, которая не соответствует вашим текущим потребностям в тестировании.

Именно здесь очистка начинает становиться рациональной, а не реактивной.

Как удалить симуляторы в Xcode: пошагово

Когда нужно именно удалить симуляторы, а не просто их осмотреть, есть два безопасных пути: интерфейс Xcode и командная строка simctl. Оба убирают старые симуляторы, не трогая рантаймы, которые вам ещё нужны.

Из приложения Xcode:

  1. Откройте Xcode и перейдите в Window → Devices and Simulators.
  2. Выберите вкладку Simulators.
  3. Нажмите правой кнопкой на ненужный симулятор и выберите Delete, либо используйте Delete Unavailable Simulators для устройств, которые текущий SDK больше не поддерживает.

Из командной строки:

# сначала посмотреть список
xcrun simctl list devices

# удалить все устройства, помеченные текущим SDK как unavailable
xcrun simctl delete unavailable

# удалить одно конкретное устройство по его UDID
xcrun simctl delete <device-UDID>

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

Если цель — освободить место, начинайте отсюда и только потом думайте про рантаймы: удалённое устройство восстанавливается легко, удалённый рантайм — решение потяжелее.

Безопасно ли удалять рантаймы симулятора на Mac?

Иногда, но это не самый безопасный первый шаг.

Справка simctl runtime от Apple прямо говорит, что образы рантаймов — самостоятельные управляемые объекты. Удаление рантайма отличается от очистки содержимого симулятора. Оно также отличается от удаления недоступного устройства.

Это значит, что удаление рантайма оправдано, когда:

  • данная версия iOS больше не нужна для тестирования;
  • вы перешли к более новому поколению Xcode или SDK;
  • рантайм достаточно неиспользуем, что место ценнее удобства;
  • вы предварительно проверили список рантаймов и точно знаете, что удаляете.

Это хуже, когда:

  • активный проект всё ещё нацелен на это семейство рантаймов;
  • превью SwiftUI, шаги воспроизведения багов или регрессионное тестирование всё ещё зависят от него;
  • вы собираетесь демонстрировать или отлаживать проблему на старой цели;
  • вы удаляете, ориентируясь только на размер, а не на реальные потребности тестирования.

Лучший первый шаг: уберите очевидный мёртвый груз

Самая безопасная очистка симулятора часто начинается с недоступных устройств.

Apple документирует это прямо в simctl delete: псевдоним unavailable удаляет устройства, не поддерживаемые текущим SDK Xcode.

xcrun simctl delete unavailable

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

Очистка данных симулятора без потери среды разработки

Здесь разработчики часто используют не тот инструмент.

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

Справка simctl erase от Apple определяет erase как стирание содержимого и настроек устройства:

xcrun simctl erase <device>

Это операция сброса, а не операция удаления рантайма.

Для чего полезен erase

  • очистка состояния приложения внутри симулятора;
  • сброс тестовых окружений;
  • удаление раздутого содержимого на уровне устройства без удаления самого образа рантайма;
  • сохранение рабочего процесса устройства при сбросе накопленного состояния.

Чем erase не является

  • не командой очистки рантайма;
  • не командой очистки DerivedData;
  • не полноценной заменой проверки того, какие устройства и рантаймы вам реально ещё нужны.

Это различие — вся история очистки симулятора: стирание устройства, удаление устройства и удаление рантайма — три разных решения.

Где CoreSimulator лежит на диске

При разборе хранилища симуляторов важны два пути.

~/Library/Developer/CoreSimulator/Devices содержит созданные вами устройства-симуляторы. Каждое устройство — папка с именем по UDID, а внутри неё data/ хранит установленные приложения, их данные и настройки. Именно этот слой сбрасывает simctl erase и удаляет simctl delete.

Папка /Library/Developer/CoreSimulator на системном уровне отвечает за рантаймы. В зависимости от версии Xcode образы лежат под Profiles/Runtimes как бандлы .simruntime, либо Xcode управляет ими как загружаемыми рантаймами, которые показывает xcrun simctl runtime list. Всё, что вы удаляете там, затрагивает каждую учётную запись на Mac, так что это более тяжёлое решение.

du -sh ~/Library/Developer/CoreSimulator/Devices
du -sh /Library/Developer/CoreSimulator
xcrun simctl runtime list

Если перевешивает Devices, проблема в накопленном состоянии устройств и в тех, что текущий SDK уже не поддерживает. Если перевешивает системная папка, дело в образах рантаймов.

Можно ли перенести CoreSimulator на внешний диск?

Этот вопрос возникает, когда внутренний диск маленький, а папка симуляторов перевалила за 40 ГБ. Поддерживаемой настройки для переноса Apple не даёт, поэтому разработчики используют симлинк: копируют ~/Library/Developer/CoreSimulator на внешний том, проверяют копию, удаляют оригинал и связывают старый путь с новым.

На что вы соглашаетесь:

  • Xcode не запустит симуляторы, пока диск не примонтирован, потому что путь исчезает;
  • на USB-диске с питанием от шины симуляторы стартуют медленнее, чем на внутреннем SSD;
  • обновление Xcode или SDK может заново создать часть структуры папок по исходному пути;
  • резервное копирование и права на внешних томах работают иначе.

Посчитайте освобождаемое место до того, как переносить всю папку. Удаление недоступных устройств и рантаймов, которые вы больше не тестируете, часто освобождает больше, чем даёт перенос, и оставляет конфигурацию в том виде, который Apple поддерживает.

Как управлять хранилищем симулятора в будущем

Практическая цель — не «никогда не позволять симуляторам расти». Практическая цель — «не позволять хранилищу симулятора становиться невидимым».

Используйте такой ритм проверки:

  1. Перечисляйте устройства и рантаймы после крупных изменений Xcode или SDK.
  2. Удаляйте недоступные устройства, когда они появляются.
  3. Сбрасывайте устаревшие устройства симулятора, когда проблема в состоянии устройств, а не в инвентаре рантаймов.
  4. Проверяйте использование рантаймов перед удалением версии ОС целиком.
  5. Сравнивайте CoreSimulator, DerivedData и Archives вместе, когда хранилище от Apple начинает расти.

Так решение об очистке остаётся привязанным к слою, который реально дорог.

Лучшая ментальная модель для хранилища от Apple

  • DerivedData — это в основном сгенерированный вывод сборки.
  • Archives сохраняют артефакты поставки и историю сборок.
  • CoreSimulator смешивает поддержку рантаймов с состоянием устройств симулятора.
  • самая безопасная очистка зависит от того, какой слой велик, а не просто от того, какая папка видна.

Как только вы начинаете мыслить слоями, очистка симулятора становится гораздо менее хаотичной.

Почему очистка разработчика работает лучше, когда она учитывает экосистемы

Если вы используете только Finder, папка от Apple на 20 или 30 ГБ выглядит как одна очевидная цель очистки. Это не так.

Файловый браузер может показать, что CoreSimulator занимает много места. Но не может сказать, является ли реально освобождаемое пространство:

  • неподдерживаемыми устройствами;
  • содержимым симуляторов, которое можно сбросить;
  • рантаймами, которые больше не нужны;
  • или соседним профилем Xcode, который просто оказался рядом.

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

Если ваша реальная проблема — «симуляторы плюс DerivedData плюс другое хранилище разработки от Apple», более широкий профильный рабочий процесс гораздо полезнее, чем погоня за одним путём за раз.

Итог

Если Xcode Simulator занимает место на вашем Mac, не относитесь к CoreSimulator как к одноразовому ведру кэша.

Сначала проверьте устройства и рантаймы. Удаляйте недоступные устройства как чистый первый проход, используйте erase, только когда хотите сбросить содержимое и настройки симулятора, и удаляйте рантаймы, только когда действительно больше не нужна эта версия ОС.

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

Об авторе

Vladimir Chemeris

Основатель, StorageRadar

Владимир Чемерис разрабатывает StorageRadar — приложение для анализа хранилища macOS с акцентом на конфиденциальность, проверку перед очисткой, хранилище разработчика и наглядное сравнение «до и после».

FAQ

Почему Xcode Simulator занимает так много места на Mac?

Хранилище симулятора растёт, потому что Xcode со временем накапливает образы рантаймов, созданные устройства симулятора, данные приложений внутри этих симуляторов и другое состояние разработки от Apple. Тестирование на нескольких версиях iOS и типах устройств быстро расширяет этот след.

В чём разница между рантаймами симулятора и данными симулятора?

Рантаймы симулятора — это образы ОС, которые Xcode использует для загрузки симуляторов конкретных платформенных версий. Данные симулятора — это состояние на уровне устройства внутри созданных симуляторов, такое как установленные приложения, их данные и настройки.

Безопасно ли удалять недоступные устройства симулятора?

Обычно да. Инструмент simctl от Apple явно поддерживает удаление недоступных устройств, то есть устройств, которые больше не поддерживаются текущим SDK Xcode. Это часто один из самых безопасных шагов очистки симулятора.

Безопасно ли удалять рантаймы симулятора на Mac?

Иногда, но только когда вы уверены, что рантайм больше не нужен для тестирования, превью или старых целей проектов. Удаление рантайма — более серьёзное решение, чем очистка содержимого симулятора, потому что удаляется сам образ рантайма.

Удаляет ли очистка симулятора сам рантайм?

Нет. Справка simctl описывает erase как очистку содержимого и настроек устройства. Это сбрасывает устройство симулятора, но не удаляет образ рантайма, стоящий за ним.

Что такое CoreSimulator на Mac?

CoreSimulator — папка под управлением Apple по пути ~/Library/Developer/CoreSimulator, где Xcode хранит рантаймы симуляторов и созданные для тестов устройства-симуляторы. Она растёт с каждым добавленным рантаймом, каждым устройством и данными приложений внутри них, поэтому в ней смешано и то, что вам ещё нужно, и то, что можно сбросить или удалить.

Можно ли удалить папку CoreSimulator?

Целиком одной папкой — небезопасно: так исчезают рантаймы, которые вам ещё нужны, а Xcode заново строит состояние симуляторов. Возвращайте место послойно: xcrun simctl delete unavailable убирает неподдерживаемые устройства, xcrun simctl erase сбрасывает содержимое устройства, а xcrun simctl runtime delete применяйте только к той версии ОС, которую больше не тестируете.

Как удалить симуляторы в Xcode?

В Xcode откройте Window, затем Devices and Simulators, выберите вкладку Simulators и удалите симулятор правой кнопкой, либо используйте Delete Unavailable Simulators. Из командной строки xcrun simctl delete unavailable убирает устройства, которые текущий SDK больше не поддерживает, а xcrun simctl delete <UDID> удаляет конкретное устройство, оставляя образ рантайма на месте.

Где на Mac лежит папка CoreSimulator?

Устройства-симуляторы лежат в ~/Library/Developer/CoreSimulator/Devices: каждая папка названа по UDID и хранит установленные приложения и настройки внутри data/. Образы рантаймов лежат в системной папке /Library/Developer/CoreSimulator — в зависимости от версии Xcode это бандлы .simruntime под Profiles/Runtimes либо загружаемые рантаймы, которые показывает xcrun simctl runtime list.

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

Поддерживаемой настройки для этого Apple не даёт. Разработчики решают задачу симлинком с ~/Library/Developer/CoreSimulator на папку внешнего тома, но после этого Xcode зависит от того, примонтирован ли диск, симуляторы стартуют по USB медленнее, а обновление Xcode может заново создать часть структуры по исходному пути. Удаление недоступных устройств и неиспользуемых рантаймов часто освобождает больше места и рискует меньше.

Проверьте хранилище симулятора до того, как начнёте чистить не те данные Xcode.

StorageRadar разделяет состояние симулятора, рантаймы, DerivedData, архивы и другие профили разработчика Apple, чтобы вы могли оценить размер, риски и выполнить сухой прогон перед применением.