Как очистить кеши и очистить все цели Xcode 4 и новее
239
Джонатан предлагает здесь: Xcode Включает файлы .xib, которые были удалены! что очистка всех целей и очистка кешей решит проблему с Xcode, включая удаленные файлы .xib, но я не могу найти способ очистить кеш в Xcode 4.
Command-Option-Shift-K, чтобы очистить папку сборки. Еще лучше выйти из Xcode и очистить ~ / Library / Developer / Xcode / DerivedData вручную. Удалите все его содержимое, потому что есть ошибка, при которой Xcode будет запускать старую версию вашего проекта, которая где-то там. (Xcode 4.2 покажет вам папку «Производные данные»: выберите «Окно»> «Органайзер» и переключитесь на вкладку «Проекты». Нажмите стрелку вправо справа от имени папки «Производные данные».)
В симуляторе выберите «Симулятор iOS»> «Сбросить содержимое и настройки».
Наконец, для полноты вы можете удалить содержимое папок / var / ; там тоже происходит кеширование.
ВНИМАНИЕ: Удаление папок / var / может вызвать проблемы, и вам может потребоваться восстановить или переустановить операционную систему после этого.
РЕДАКТИРОВАТЬ: Я только что узнал, что если вы боитесь использовать / var / folder /, вы можете использовать следующую команду в терминале для более целенаправленного удаления:
РЕДАКТИРОВАТЬ: Для некоторых проблем, связанных со Swift, я нашел полезным удалить ~ / Library / Caches / com.apple.dt.Xcode . Вы теряете много, когда делаете это, как ваши запасные копии загруженных комплектов документации, но это может стоить того.
Отлично, очистка пути: библиотека / разработчик / Xcode / DerivedData + сброс содержимого и настройка симулятора работает!
Время
10
Путь, кажется, находится в моем домашнем каталоге (примечание тильда): ~ / Library / Developer / Xcode / DerivedData Возможно, это было очевидно для других, но в случае, если у кого-то еще есть проблема ...
Виктор Ван Хи
37
Хе-хе, будучи übern00b, я удалил / var / db, где нашел что-то из Xcode / моего проекта. Это стоило мне пяти часов журналирования в файловой системе, восстановления и переустановки Lion и т. Д. Будьте осторожны! :-)
Йонас Быстрем
4
@Jonas Я чувствовал себя обязанным добавить предупреждение к совету «delete / var / folder». Это не для непосвященных!
LearnCocos2D
7
Не запускайте папки rm -rf / var / с sudo, иначе вы восстановите себя, как я :)
Josip B.
68
Команда-Option-Shift-K должна это сделать. Кроме того, перейдите в меню продукта, нажмите клавишу параметров, теперь параметр «Очистить» изменится на «Очистить папку сборки ...» и выберите этот параметр.
Нет, очень плохо .. Я просто изменил и переименовал файл XIB и очистил приложение, как вы сказали, но оно все равно загружается нормально без ошибок.
Tieme
2
Ничего себе, никогда не узнавайте об этом альтернативном трюке для меню Mac OS X !!! Это действительно определяет значение слова «Alt».
trusktr
20
Помимо выполнения следующих действий вы можете столкнуться с этой проблемой, если файлы раскадровки вашего приложения локализованы. Сначала сделайте каждый из них:
В конечном итоге мне удалось заново сгенерировать файлы локализации раскадровки и удалить английскую локализацию (что было ненужно, потому что базовый языковой стандарт - английский). Чтобы перезагрузить строки раскадровки, см. Этот ответ в StackOverflow .
Я заметил, что обновляются нетекстовые части моего раскадровки, а не локализованный текст. Если у вас есть локализация в вашем приложении, я бы порекомендовал проверить, обновляются ли ваши локализации (даже если это .stringsфайлы).
Удаление содержимого (не всей папки) из папок / var / сделало это за меня! Если вы ищете /var/folders...Выберите Перейти к папке из меню Go Finder и введите / var / в качестве местоположения папки.
Патриция
+1 к инструкции / var / folder ... очистка и удаление DerivedData работали частично, но тот добился
цели
1
1. Чистая сборка 2. Сброс симулятора 3. Перезапустите Xcode, который решил мою проблему.
Алан Донг
ПРЕДУПРЕЖДЕНИЕ! Помните, что удаление содержимого из /var/folders/может вызвать серьезные проблемы и может привести к необходимости полной переустановки OSx из консоли восстановления!
Магнус В.
18
Я нашел другой способ в дополнение к команде + опция + Shift + K. В XCode 4.2 есть органайзер, который можно открыть из правого верхнего значка. Вы можете очистить все архивы и сохраненные параметры проекта оттуда. Это помогло моей ситуации (я видел старые удаленные файлы в mainBundle).
Да, это гораздо более простой способ, чем очистка ~ / Library / Developer / Xcode / DerivedData вручную
Tieme
10
Я вырывал волосы из головы, потому что думал, что у меня такая же проблема. При создании приложения я не получил тот же результат на моем iPhone, как на симуляторе.
Проблема была в том, что я как-то сделал локализованную версию файла MainStoryboard.storyboard. Поэтому, когда я запустил приложение на своем телефоне, оно показало датскую версию ... и симулятор показал английскую версию.
У меня были похожие проблемы. Делал command-option-shift-K безрезультатно. Удалено ... DerivedData, нет решения. Оказалось, что изменение верхнего уровня XIB меняет только английскую версию, и я тестировал голландскую версию XIB. Вздох ...
fishinear
1
Также имейте в виду, что существуют способы локализации вашего приложения, где для каждого языка создаются отдельные текстовые файлы. В таких случаях изменение .xib ничего не делает.
Очевидная ошибка, вызывающая «фатальную ошибку: искаженный или поврежденный файл AST:« Невозможно загрузить модуль », и сбой мягкого решения, предложенного XCode, все еще происходит в XCode 6.1. И решение выйти из Xcode и вручную очистить ~ / Library / Developer / Xcode / DerivedData вручную все еще работает. Мне не нужно было все там чистить; только две подпапки: ModuleCache и подпапка, имя которой относится к проблемному проекту.
Джерри Кринок
5
У меня были некоторые проблемы со сбоем Xcode 5.1, когда я открывал окно документа.
Я не уверен в причине этого, потому что я также обновлял наборы документов, пока открывал окно.
Ну, в Xcode 5 каталог модулей теперь находится в папке производных данных, которую я по понятным причинам не удалил. Я удалил содержимое ~ / Library / Developer / Xcode / DerivedData / ModuleCache и ~ / Library / Preferences / com.apple.Xcode.plist, и все, как мне кажется, работает после перезапуска Xcode.
При использовании «модели данных» в инспекторе есть опции для генерации классов, для меня это было так, поскольку уже существовал класс с существующим именем.
Вы должны быть осторожны с файлом XIB. Я перепробовал все вышеперечисленное и у меня ничего не получалось. Я использовал пользовательские кнопки UIB, определенные в xib, и понял, что это может быть связано с тем, что я назначил атрибуты, которые не менялись программно. Если вы определили изображения или текст там, удалите их. Когда я это сделал, мои программные изменения начали вступать в силу.
Вот мое решение сценария оболочки , которое удаляет производные данные и очищает кэшированные активы проекта для Xcode 4, 5 и 6.
Иногда простой вызов rm -rf в каталоге Derived Data оставляет файл или два устаревших файла, но мой сценарий зацикливается, пока все файлы не будут удалены.
Я перепробовал почти все, но не смог помочь, мне помогло отключение SIP (System Integration Protection), и это работает, я не знаю, что происходит, когда и как, но системный файл где-то запутывается и вызывает это ... хотя могут быть риски чтобы отключить это, очевидно,
вот как
1. Включите Mac и удерживайте клавиши [command] + [R] для доступа к разделу восстановления.
2. В разделе восстановления нажмите «Утилиты» в строке меню и выберите «Терминал».
3.Введите следующую команду в терминал и нажмите Enter для ее выполнения: csrutil disable
4.После выполнения команды выйдите из терминала и перезагрузите Mac. Когда вы снова войдете в OS X, SIP будет отключен.
Ответы:
Command-Option-Shift-K, чтобы очистить папку сборки. Еще лучше выйти из Xcode и очистить ~ / Library / Developer / Xcode / DerivedData вручную. Удалите все его содержимое, потому что есть ошибка, при которой Xcode будет запускать старую версию вашего проекта, которая где-то там. (Xcode 4.2 покажет вам папку «Производные данные»: выберите «Окно»> «Органайзер» и переключитесь на вкладку «Проекты». Нажмите стрелку вправо справа от имени папки «Производные данные».)
В симуляторе выберите «Симулятор iOS»> «Сбросить содержимое и настройки».
Наконец, для полноты вы можете удалить содержимое папок / var / ; там тоже происходит кеширование.
ВНИМАНИЕ: Удаление папок / var / может вызвать проблемы, и вам может потребоваться восстановить или переустановить операционную систему после этого.
РЕДАКТИРОВАТЬ: Я только что узнал, что если вы боитесь использовать / var / folder /, вы можете использовать следующую команду в терминале для более целенаправленного удаления:
РЕДАКТИРОВАТЬ: Для некоторых проблем, связанных со Swift, я нашел полезным удалить ~ / Library / Caches / com.apple.dt.Xcode . Вы теряете много, когда делаете это, как ваши запасные копии загруженных комплектов документации, но это может стоить того.
источник
Команда-Option-Shift-K должна это сделать. Кроме того, перейдите в меню продукта, нажмите клавишу параметров, теперь параметр «Очистить» изменится на «Очистить папку сборки ...» и выберите этот параметр.
источник
Помимо выполнения следующих действий вы можете столкнуться с этой проблемой, если файлы раскадровки вашего приложения локализованы. Сначала сделайте каждый из них:
DerivedData
папку в ~ / Library / Developer / Xcode / DerivedDataВ конечном итоге мне удалось заново сгенерировать файлы локализации раскадровки и удалить английскую локализацию (что было ненужно, потому что базовый языковой стандарт - английский). Чтобы перезагрузить строки раскадровки, см. Этот ответ в StackOverflow .
Я заметил, что обновляются нетекстовые части моего раскадровки, а не локализованный текст. Если у вас есть локализация в вашем приложении, я бы порекомендовал проверить, обновляются ли ваши локализации (даже если это
.strings
файлы).источник
/var/folders/
может вызвать серьезные проблемы и может привести к необходимости полной переустановки OSx из консоли восстановления!Я нашел другой способ в дополнение к команде + опция + Shift + K. В XCode 4.2 есть органайзер, который можно открыть из правого верхнего значка. Вы можете очистить все архивы и сохраненные параметры проекта оттуда. Это помогло моей ситуации (я видел старые удаленные файлы в mainBundle).
источник
Я вырывал волосы из головы, потому что думал, что у меня такая же проблема. При создании приложения я не получил тот же результат на моем iPhone, как на симуляторе.
Проблема была в том, что я как-то сделал локализованную версию файла MainStoryboard.storyboard. Поэтому, когда я запустил приложение на своем телефоне, оно показало датскую версию ... и симулятор показал английскую версию.
Да, я новичок! :)
источник
Для удаления всех производных данных и кеша модуля
/var/folders
используйте этот маленький скрипт ruby .Это просто решило
fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/
ошибку для меня.источник
У меня были некоторые проблемы со сбоем Xcode 5.1, когда я открывал окно документа.
Я не уверен в причине этого, потому что я также обновлял наборы документов, пока открывал окно.
Ну, в Xcode 5 каталог модулей теперь находится в папке производных данных, которую я по понятным причинам не удалил. Я удалил содержимое ~ / Library / Developer / Xcode / DerivedData / ModuleCache и ~ / Library / Preferences / com.apple.Xcode.plist, и все, как мне кажется, работает после перезапуска Xcode.
источник
При использовании «модели данных» в инспекторе есть опции для генерации классов, для меня это было так, поскольку уже существовал класс с существующим именем.
Codegen: решил это для меня.
источник
Мои "DerivedData" с Xcode 10.2 и Mojave были здесь:
MacHD / Users / [MyUser] / Library / Developer / Xcode
источник
Вы должны быть осторожны с файлом XIB. Я перепробовал все вышеперечисленное и у меня ничего не получалось. Я использовал пользовательские кнопки UIB, определенные в xib, и понял, что это может быть связано с тем, что я назначил атрибуты, которые не менялись программно. Если вы определили изображения или текст там, удалите их. Когда я это сделал, мои программные изменения начали вступать в силу.
источник
Вот мое решение сценария оболочки , которое удаляет производные данные и очищает кэшированные активы проекта для Xcode 4, 5 и 6.
Иногда простой вызов rm -rf в каталоге Derived Data оставляет файл или два устаревших файла, но мой сценарий зацикливается, пока все файлы не будут удалены.
источник
Я перепробовал почти все, но не смог помочь, мне помогло отключение SIP (System Integration Protection), и это работает, я не знаю, что происходит, когда и как, но системный файл где-то запутывается и вызывает это ... хотя могут быть риски чтобы отключить это, очевидно,
вот как
1. Включите Mac и удерживайте клавиши [command] + [R] для доступа к разделу восстановления.
2. В разделе восстановления нажмите «Утилиты» в строке меню и выберите «Терминал».
3.Введите следующую команду в терминал и нажмите Enter для ее выполнения: csrutil disable
4.После выполнения команды выйдите из терминала и перезагрузите Mac. Когда вы снова войдете в OS X, SIP будет отключен.
источник