Могу ли я безопасно удалить содержимое папки данных 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. Нажмите « Окно», затем « Проекты» и затем удалите производные данные .

Как это:

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

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

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


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

Lukesivi
источник
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/
ohho
источник
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
μολὼν.λαβέ
источник
0

Я получил эту ошибку, потому что Int был INT в одном файле. Так глуп.

Раджесвари Ратала
источник
-1

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

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

Sheamus
источник
Тьфу. Опечатка. Я имел в виду «предоставить»
ясное освещение
Ах, я ссылаюсь на сценарий, который я предоставил в ответе на другой вопрос. Таким образом, если я когда-либо захочу обновить скрипт, мне нужно редактировать только в одном месте. Можете ли вы перейти по ссылке?
Sheamus
Теперь я вижу код. Не видел ссылку раньше (если она там была), спасибо.
ясный свет
-1

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

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

Шаг 1

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

Шаг 2

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

Шаг 3

Джайпракаш Дубей
источник