Могу ли я безопасно удалить содержимое папки данных Xcode Derived?


293

У меня не хватает дискового пространства и я проверил стороннюю утилиту, что, помимо прочего, каталог ~ / Library / Developer / Xcode / DerivedData занимает около 22 ГБ дискового пространства.

Я искал stackoverflow и нашел этот пост

Как я могу безопасно удалить в моей директории ~ / Library / Developer / Xcode / DerivedData?

Принятый ответ на этот вопрос предполагает, что я не должен трогать / удалять папки из этого каталога. так что я сделал

  • Найдена существующая папка проекта сборки для приложения, которое у меня есть в Appstore
  • Удалил папку из производного каталога
  • запустил XCode 5
  • Откройте этот проект
  • Чистая сборка
  • Протестировал и скомпилировал его на симуляторе
  • ReArchived
  • Все работало Ничего не было сломано.

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


принятым ответом на упомянутый вопрос является stackoverflow.com/a/7284632/8047, в котором ничего не говорится о том, чтобы не удалять из DerivedData ... хотя Archives важен для отладки позже, но это другой каталог.
Дэн Розенстарк

Ответы:


372

Да, вы можете удалить все файлы из DerivedDataподпапки (Not DerivedData Folder)напрямую.

Это не повлияет на работу вашего проекта. Содержимое DerivedDataпапки создается во время сборки, и вы можете удалить их, если хотите. Это не проблема.

Содержимое DerivedDataбудет воссоздано при повторном создании проектов.

Xcode8 + Обновление

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

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

Обновление Xcode7.3 Для удаления DeriveData конкретного проекта вам просто нужно выполнить следующие шаги:

Перейти к Window -> Project:

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

Вы можете найти список проектов и вы можете либо перейти в DerivedDataпапку, либо вы можете напрямую удалить отдельные проектыDerivedData

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


Я не работаю над Xcode5, но в 4.6.3 вы можете найти DerivedDataпапку, как показано на рисунке ниже:

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

После нажатия на Предпочтения ..

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

Вы получаете это окно

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


1
Большое спасибо, мужчина. Является ли содержимое «производных данных» в основном похожим на кэшированные и ненужные файлы Xcode? Так вот почему его можно удалить, чтобы освободить место?
Supertecnoboff

1
@ пропал О чем ты говоришь? Встроенные файлы должны куда-то идти.
Дроппи

2
Что ж, с CMake и другими системами make, даже со сборками вне исходного кода, сгенерированные файлы и т. Д. Все еще находятся в пути проекта и удаляются, если я удаляю структуру папок или очищается при выполнении очистки. Поскольку я отмечаю около 100 заданий каждую неделю или около того, я получаю огромное количество файлов, которые мне нужно помнить, чтобы вручную удалить, и используя пользовательский интерфейс XCode, данные каждого проекта в отдельности. Поэтому я поддерживаю свой предыдущий комментарий, хотя теперь я реализовал псевдоним Уильяма в моем .bashrc.
ушел

XCode 8 снова меняет вещи (это всегда было болью в заднице). Теперь нам нужно вручную перейти в папку /Users/YourUsername/Library/Developer/Xcode/DerivedDataи удалить их все. Как вы уже редактировали для XCode 7, я подумал, что вы, возможно, захотите снова отредактировать его для XCode 8.
sweta.me

1
Вы можете проверить мой полный ответ, есть многократный ответ в том же самом старом, все еще работающем, чтобы перейти предпочтение и от вкладки местоположения. :)
Нитин Гоэль

124

Я очищаю производные данные достаточно часто, чтобы иметь псевдоним для них. Это может исправить проблемы со сборкой. У меня есть следующее в /Users/Myusername/.bash_profile

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

Затем в терминале я набираю purgeallbuilds, и все подпапки DerivedData удаляются.


24
Вы можете удалить саму папку DerivedData. Это будет просто воссоздано.
Ник Локвуд

1
Сборка сразу не удается в Xcode 8, когда я удалил эту папку. Как только я добавил его обратно, все снова заработало.
Тим

Это очень полезный совет. Я обычно сталкиваюсь с нехваткой места каждые полгода, и мне сложно вспомнить, какие папки следует удалить. Псевдоним определенно удобен.
Оливер Чжан

35

XCODE 10 ОБНОВЛЕНИЕ

На вкладке:

  1. Нажмите Xcode
  2. предпочтения
  3. Местоположения -> Производные данные

Вы можете получить доступ ко всем производным данным и очистить, удалив их.


В разделе «Производные данные» определяется только путь к производным данным. Я нигде не вижу, чтобы просмотреть и удалить их. Почему бы просто не сделать это через командную строку?
AlxVallejo

2
@AlxVallejo В конце адреса пути вы увидите значок, который приведет вас в папку. Нажмите на нее и удалите папку, и она будет создана заново.
Умит Кая

34

XCODE 7.2 ОБНОВЛЕНИЕ

(Также работает для 7.1.1)

  1. Нажмите « Окно», затем « Проекты» и затем удалите производные данные .

Как это:

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

А затем удалите его здесь:

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


Надеюсь, это поможет!


2
Это позволит вам удалить его вручную один за другим, но средства, используемые в других публикациях, предназначены для одновременного удаления содержимого папки DerivedData
XIII

23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

показывает как минимум две папки огромные:

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

Не стесняйтесь удалять вещи в папках:

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

а некоторые в:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/

2
Святое дерьмо ... удаление файлов со старых версий iOS в папке поддержки устройств высвободило 28 ГБ ...
Карим

17

Просто создал репозиторий Github с небольшим скриптом, который создает RAM-диск. Если вы укажете папку DerivedData /Volumes/ramdisk, после извлечения диска все файлы исчезнут.

Это ускоряет компиляцию, а также устраняет эту проблему

репозиторий xc-launch

Лучше всего запускать с использованием DTerm


11

XCode 8: чтобы удалить производные данные для вашего текущего проекта:

Нажмите меню продукта

Удерживайте клавишу Option

Нажмите Очистить папку сборки


Когда я удерживаю клавишу выбора, опция «Чистая сборка» становится серой. : /
AlxVallejo

4

XCODE 10 ОБНОВЛЕНИЕ

Нажмите на Xcode в строке состояния, затем выберите Настройки

В всплывающем окне выберите местоположения перед последним сегментом

Вы можете добраться до папки « Производные данные » с помощью маленького правого значка

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


2

~ / Library / Developer / Xcode / DerivedData


По умолчанию да; Я использую, ~/tmp/DerivedDataчтобы я мог легче получить доступ к встроенным файлам / пакетам.
Дроппи

1

да, безопасно удалить, мой скрипт ищет и обнуляет каждый найденный экземпляр, легко модифицируя его в локальный каталог

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done


-1

Я бы сказал , что это безопасно - я часто удалите содержимое папки для многих видов проектов IOS, таким образом . И у меня не было проблем со сборками или отправкой в ​​App Store. Процедура удаляет производные данные и очищает кэшированные активы проекта, как для Xcode 5, так и для 6.

Иногда простой вызов rm -rf в каталоге Derived Data оставляет файл или два устаревших, но мой сценарий зацикливается, пока все файлы не будут удалены.


Тьфу. Опечатка. Я имел в виду «предоставить»
ясное освещение

Ах, я ссылаюсь на сценарий, который я предоставил в ответе на другой вопрос. Таким образом, если я когда-либо захочу обновить скрипт, мне нужно редактировать только в одном месте. Можете ли вы перейти по ссылке?
Sheamus

Теперь я вижу код. Не видел ссылку раньше (если она там была), спасибо.
ясный свет

-1

Содержимое «Производных данных» создается во время сборки. Вы можете удалить его безопасно. Выполните следующие шаги для удаления «Производные данные»:

  1. Выберите Xcode -> Настройки.

Шаг 1

  1. Откроется всплывающее окно. Выберите вкладку « Местоположения ». Во вкладке «Местоположения» вы можете увидеть « Производные данные ». Нажмите на значок стрелки рядом с путем.

Шаг 2

  1. Это откроет папку, содержащую «Производные данные» Щелкните правой кнопкой мыши и удалите папку.

Шаг 3

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.