Как очистить кеши и очистить все цели Xcode 4 и новее - PullRequest
225 голосов
/ 19 апреля 2011

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

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

Ответы [ 12 ]

506 голосов
/ 06 июня 2011

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

В имитаторе выберите iOSСимулятор> Сбросить содержимое и настройки.

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

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

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

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

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

64 голосов
/ 25 апреля 2011

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

17 голосов
/ 23 апреля 2012

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

16 голосов
/ 27 октября 2013

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

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

Предупреждение : Дополнительным шагом является удаление содержимого (не всей папки) из / var / folder . Обратите внимание, что это может вызвать серьезные проблемы с вашей установкой OSx, и вы больше не сможете загружаться в OSx . В этом случае единственный вариант - переустановить OSx из консоли восстановления.

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

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

9 голосов
/ 19 декабря 2011

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

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

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

6 голосов
/ 16 октября 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/.

4 голосов
/ 13 марта 2014

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

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

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

1 голос
/ 01 июля 2019

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

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

0 голосов
/ 12 июля 2017

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

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

enter image description here

0 голосов
/ 19 октября 2016

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

вот как

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

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

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

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

...