Как очистить кеши и очистить все цели Xcode 4 и новее

Джонатан предлагает здесь: Xcode Включает файлы .xib, которые были удален!, который очищает все цели и очищает кеши, устранит проблему с Xcode, включая удаленные файлы .xib, но я не могу найти способ очистить кеш в Xcode 4.

Как это сделать в Xcode 4?


person Tieme    schedule 19.04.2011    source источник
comment
Вот мое [решение сценария оболочки] [1], которое удаляет производные данные для xCode 5 и 6. [1]: stackoverflow.com / a / 27977848/1231948   -  person Sheamus    schedule 16.01.2015


Ответы (12)


Command-Option-Shift-K, чтобы очистить папку сборки. Еще лучше выйдите из Xcode и очистите ~ / Library / Developer / Xcode / DerivedData вручную. Удалите все его содержимое, потому что есть ошибка, из-за которой Xcode запускает старую версию вашего проекта, которая где-то там находится. (Xcode 4.2 покажет вам папку "Производные данные": выберите "Окно"> "Организатор" и перейдите на вкладку "Проекты". Щелкните стрелку вправо справа от имени папки "Производные данные".)

В симуляторе выберите iOS Simulator> Reset Content and Settings.

Наконец, для полноты вы можете удалить содержимое / var / folder; там тоже происходит кеширование.

ВНИМАНИЕ! Удаление / var / folder может вызвать проблемы, и после этого вам может потребоваться восстановить или переустановить операционную систему.

РЕДАКТИРОВАТЬ: Я только что узнал, что если вы боитесь бороться с / var / folder /, вы можете использовать следующую команду в Терминале для более целенаправленного удаления:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

РЕДАКТИРОВАТЬ: Для некоторых проблем, связанных со Swift, я счел полезным удалить ~ / Library / Caches / com.apple.dt.Xcode. Вы многое теряете, когда делаете это, например, ваши запасные копии загруженных наборов документации, но это того стоит.

person matt    schedule 06.06.2011
comment
Приятно, очистка пути: Library / Developer / Xcode / DerivedData + сброс содержимого и настройки симулятора работает! - person Tieme; 06.06.2011
comment
Путь, похоже, находится в моем домашнем каталоге (обратите внимание на тильду): ~ / Library / Developer / Xcode / DerivedData Может быть, это было очевидно для других, но на случай, если у кого-то есть проблема ... - person Victor Van Hee; 16.09.2011
comment
Хе-хе, будучи übern00b, я удалил / var / db, где нашел что-то, что пришло из Xcode / моего проекта. Это стоило мне пяти часов журналирования файловой системы, восстановления и переустановки Lion и т. Д. Будьте осторожны! :-) - person Jonas Byström; 23.11.2011
comment
@Jonas haha ​​... это довольно забавно ... если только ты не потерял из-за этого серьезные деньги - person Henley; 21.01.2012
comment
У меня такая же проблема неожиданно. У меня никогда раньше не было этой проблемы. Я сделал все эти предложения безрезультатно. Удалить приложение с устройства - единственное решение для меня. Я не хочу удалять приложение каждый раз, когда меняю файл пера. Кто-нибудь нашел что-нибудь более убедительное для исправления? Что такое папки / var /? Я не нахожу его в своей системе. - person Dean Davids; 16.03.2012
comment
@matt: данные какого типа хранятся в /var/folders. Я хотел бы очистить свой материал, но удаление чего-либо в /var/ кажется мне немного рискованным. - person Besi; 13.07.2012
comment
@Besi - Посмотри и увидишь. Например, вы найдете много старых файлов .pch, кэшированных там. Если вы не хотите их удалять, не делайте этого; Я не думаю, что это влияет на большинство людей, кроме как занимать ненужное дисковое пространство. - person matt; 14.07.2012
comment
Мне пришлось сначала закрыть текущий проект, прежде чем я удалю файлы в папках DerivedData и / var /, прежде чем он заработает! Также не забудьте перезагрузить симулятор перед повторным запуском приложения. :) - person TheNitram; 07.03.2013
comment
@Jonas Я был вынужден добавить предупреждение к совету об удалении / var / folder. Это не для непосвященных! - person LearnCocos2D; 23.08.2013
comment
Согласен, но тогда это был бы комментарий, а не исправление ответа. - person matt; 01.09.2013
comment
Я пробовал это в Xcode5, но у меня это не сработало. Я закончил тем, что отменил весь свой список изменений (используя GitHUB), и это сработало для меня. - person Michael Osofsky; 11.05.2014
comment
Для меня это не был ни один из других кешей XCode, все оставалось обработанным, пока я не опустошил /var/folders/ - ура для этого! - person Olie; 04.09.2014
comment
Стоит отметить, что 2014 в XCode 6 это (!) Решение, если отладчик показывает неправильные строки или не показывает данные о членах. - person Martin Schlott; 29.09.2014
comment
Я столкнулся с ситуацией, когда Xcode не скомпилировал мой проект или его резервные копии, потому что у меня был путь Frameworks в FRAMEWORK_SEARCH_PATHS. Если вы не решаетесь удалить содержимое папок / var /, см. Мой ответ на странице stackoverflow.com/a/26682008/539149 для полного объяснения того, как настройки рабочего проекта могут внезапно выйти из строя, если они повлияют на общий PCH. Мое лучшее предположение состоит в том, что иногда кеши Xcode не перестраиваются так же, как (к счастью) раньше, поэтому давние неправильные конфигурации могут быть замаскированы, но в конечном итоге обнаруживаются. - person Zack Morris; 31.10.2014
comment
Не запускайте rm -rf / var / folder с помощью sudo, иначе вы будете ремонтировать как я :) - person Josip B.; 27.07.2015
comment
Работает с Xcode 7.0! Я потерял почти 2 дня, пытаясь удалить и всю версию модуля. Я выполнил все команды в ответе, и наконец он исчез! Спасибо! - person pabloa98; 19.10.2015
comment
Я случайно удалил папки / var / до того, как прочитал все предупреждения. мой macbook навсегда зависает после перезагрузки. Мне нужно загрузиться в однопользовательском режиме, перемонтировать весь каталог перед удалением и воссоздать каталог папок / zz в / var. osxbytes.wordpress.com/2015/03 / 19 / - person zynick; 06.05.2016
comment
@matt, думаю, вам нужно добавить сюда предупреждение о /var/folders. Отличный ответ, но требование, чтобы предупреждение «было комментарием, а не исправлением ответа», наносит вред. - person Chris Nolet; 01.06.2016

Command-Option-Shift-K должна сделать это. Или перейдите в меню продукта, нажмите клавишу параметров, теперь параметр «Очистить» изменится на «Очистить папку сборки ...», выберите этот параметр.

person sram    schedule 25.04.2011
comment
Нет, очень плохо ... Я просто изменил и переименовал файл xib и очистил приложение, как вы сказали, но оно по-прежнему загружается нормально, без ошибок. - person Tieme; 04.05.2011
comment
Ух ты, никогда не новость об этой уловке с клавишей alt для меню Mac OS X !!! Это действительно определяет значение альтернативы. - person trusktr; 01.08.2013
comment
Привет @sram, Command-Option-Shift-K не работает с новым xCode (12.5). У вас есть что-то еще? - person benhi; 12.05.2021

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

  • Чистая сборка
  • Сбросить симулятор
  • Перезапустить Xcode
  • Удалите папку DerivedData в ~ / Library / Developer / Xcode / DerivedData
  • Перезагрузить компьютер

Что в конечном итоге сработало для меня, так это повторное создание файлов локализации раскадровки и удаление английской локализации (в которой не было необходимости, потому что базовой локалью является английский). Чтобы перезагрузить строки раскадровки, см. Этот ответ в StackOverflow.

Я заметил, что обновлялись нетекстовые части моей раскадровки, но не локализованный текст. Если у вас есть локализация в вашем приложении, я бы рекомендовал проверить, обновлены ли ваши локализации (даже если они .strings файлы).

person Sam Spencer    schedule 27.10.2013
comment
Удаление содержимого (а не всей папки) папок / var / сделало это за меня! Если вы ищете /var/folders ... выберите Перейти к папке в меню «Перейти» Finder и введите / var / в качестве местоположения папки. - person Patricia; 19.06.2014
comment
+1 в инструкции / var / folder ... очистка и удаление DerivedData работали частично, но это помогло - person EeKay; 21.10.2014
comment
1. Чистая сборка 2. Сбросить симулятор 3. Перезапустить Xcode. Это решило мою проблему. - person Alan Dong; 08.01.2015
comment
ПРЕДУПРЕЖДЕНИЕ! Помните, что удаление содержимого из /var/folders/ может вызвать серьезные проблемы и может привести к необходимости полной переустановки OSx из консоли восстановления! - person Magnus W; 13.03.2019

Я нашел другой способ помимо command + option + shift + K. В XCode 4.2 есть органайзер, который можно открыть с помощью значка в правом верхнем углу. Оттуда вы можете очистить все архивы и сохраненные параметры проекта. Это помогло моей ситуации (я видел старые удаленные файлы в mainBundle).

person mert    schedule 23.04.2012
comment
Да, это более простой способ, чем чистка ~ / Library / Developer / Xcode / DerivedData вручную - person Tieme; 23.04.2012

Я выдергивал волосы из головы, потому что думал, что у меня такая же проблема. При создании приложения я не получил на своем iPhone того же результата, что и на симуляторе.

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

Да я новенький! :)

person thehatisonfire    schedule 19.12.2011
comment
У меня были похожие проблемы. Сделал command-option-shift-K безрезультатно. Удалено ... DerivedData, решения нет. Оказалось, что изменение XIB верхнего уровня изменяет только английскую версию, и я тестировал голландскую версию XIB. Вздох... - person fishinear; 23.02.2012
comment
Также имейте в виду, что существуют способы локализации вашего приложения, при которых для каждого языка создаются отдельные текстовые файлы. В таких случаях изменение .xib ничего не дает. - person dandan78; 12.08.2013

Чтобы удалить все производные данные и кеш модуля в /var/folders, используйте этот маленький скрипт Ruby.

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Это просто решило для меня fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/ ошибку.

person orkoden    schedule 16.10.2013
comment
Очевидная ошибка, вызывающая фатальную ошибку: искаженный или поврежденный файл AST: «Невозможно загрузить модуль, и отказ мягкого решения, предложенного Xcode, все еще происходит в Xcode 6.1. И решение выйти из Xcode и вручную очистить ~ / Library / Developer / Xcode / DerivedData вручную все еще работает. Мне не нужно было там все чистить; всего две подпапки: ModuleCache и подпапка, имя которой связано с проблемным проектом. - person Jerry Krinock; 29.12.2014

У меня были проблемы с вылетом Xcode 5.1, когда я открыл окно документа.

Я не уверен в причине этого, потому что я также обновлял документы, когда открывал окно.

Что ж, в Xcode 5 каталог модулей теперь находится в папке производных данных, которую я по понятным причинам не удалял. Я удалил содержимое ~ / Library / Developer / Xcode / DerivedData / ModuleCache и ~ / Library / Preferences / com.apple.Xcode.plist, и все, кажется, работать после перезапуска Xcode.

person McUsr    schedule 13.03.2014

Мои "DerivedData" с Xcode 10.2 и Mojave были здесь:

MacHD / Пользователи / [MyUser] / Библиотека / Разработчик / Xcode

person Mahdi Moqadasi    schedule 01.07.2019

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

Codegen: решил это за меня.

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

person Wayne    schedule 12.07.2017

Вы должны быть осторожны с файлом xib. Я пробовал все вышеперечисленное, и у меня ничего не работало. Я использовал пользовательские кнопки UIButton, определенные в xib, и понял, что это может быть связано с тем, что я назначил им атрибуты, которые не менялись программно. Если вы определили здесь изображения или текст, удалите их. Когда я это сделал, мои программные изменения начали действовать.

person Alyoshak    schedule 18.02.2014

Вот мое решение сценария оболочки, которое удаляет производные данные и очищает кэшированные ресурсы проекта для Xcode 4, 5 и 6.

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

person Sheamus    schedule 16.01.2015

Я пробовал почти все, но не смог помочь, мне помогло отключение SIP (System Integration Protection), он работает, я не знаю, что происходит, когда и как, но системный файл где-то путается и вызывает это ... хотя есть очевидно, что это может быть связано с риском его отключения

вот как

1. Включите Mac и удерживайте клавиши [команда] + [R], чтобы получить доступ к разделу восстановления.

2. В разделе восстановления щелкните «Утилиты» в строке меню, а затем выберите «Терминал».

3. Введите следующую команду в Терминал и нажмите Enter, чтобы выполнить ее: csrutil disable

4. После выполнения команды выйдите из Терминала и перезагрузите Mac. Когда вы снова войдете в OS X, SIP будет отключен.

person Castro Zwelithini    schedule 19.10.2016
comment
Звучит действительно рискованно. Что делает SIP? - person Tieme; 19.10.2016
comment
Защита целостности системы защищает системные файлы и каталоги, помеченные для защиты. В основном повышает безопасность вашей системы, ограничивая даже возможности команды sudo - person Castro Zwelithini; 19.10.2016