Как исправить ошибку PCH?



когда я пытаюсь построить свое приложение в Xcode, Я получаю это сообщение об ошибке:




PCH файл построен из другой ветви ((clang-425.0.24)), чем
компилятор ((clang-425.0.27))




это не произошло раньше, но это была первая сборка после обновления Xcode.



другие приложения работают, но не этот конкретный.



Если я выключу "Precompile Prefix Header" настройки, он работает.



Как исправить эту ошибку и сохранить эту настройку дальше?

701   20  

20 ответов:

Это часто проблема кэширования. Обычно это можно решить, удерживая клавишу опции и выберите Продукт > Очистить Папку...

Кажется,Продукт > Очистить Папку... (при нажатой клавише опция) работает для большинства людей. См. выбранный ответ от @gaige.

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

/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders

Я просто удалил всю папку SharedPrecompiledHeaders, и это решило все для меня. Я бы не стал идите, прикасаясь к чему-то еще здесь...

сдуть DerivedData папка для проекта. Посмотрите под Xcode preferences - > Locations, чтобы увидеть, где вы его сохраните.

перейдите в Настройки Xcode - > Locations (как указано в ответе wcochran) и просто переименуйте папку DerivedData. Я просто изменил свой с "DerivedData" на "DerivedData2", и это заставило систему прекратить ссылаться на старое местоположение. Это исправило его для меня, когда ни один из других ответов не работал. Смотрите фото:

enter image description here

удалить Build и DerivedData папки из местоположения проекта в Finder работали для меня.

ни один из других вариантов не работал для меня, вот что исправлено:

Я удалил папку кэша в /Users/(Yourname)/Library/Developer/Xcode/DerivedData/ModuleCache/(переименование тоже работает).

Попробуйте удалить папку, указанную в ошибке, если ваша ошибка выглядит примерно так:

PCH was compiled with module cache path '/Users/User/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8', but the path is currently '/Users/Stan/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8

после обновления Xcode я получал это с несколькими проектами. Чистая папка сборки и чистая не имели никакого эффекта - @sedes answer и @josema.комментарий vitaminew сделал это для меня. Но это может быть сложно, если вы не используете немного хитрости, так что вот шаг за шагом ярлык:

  1. перейдите в журнал сборки, который не удалось
  2. используйте cmd-f "SharedPrecompiledHeaders", чтобы найти его (он будет находиться в середине массивной ужасной сложной командной строки)
  3. перетащите-выделите текст "SharedPrecompiledHeaders "и все символы до, но не после него, пока вы не доберетесь до начала этого бита пути (все еще в середине большого блока текста), например, для меня:" /var/folders/03/n71d4r551jv40j5nb8r9fjy80000gn/C/com.яблоко.Xcode.501 / SharedPrecompiledHeaders
  4. откройте Finder
  5. меню: перейти - > перейти в папку...
  6. копировать/вставить выбранный путь
  7. в" SharedPrecompiledHeaders " удалите все подпапки (это безопасно: он только кэшируется данные)

...и теперь все ваши проекты будут "исправлены", но придется заново строить себя в первый раз с нулевым кэшированием (поэтому следующая сборка будет только медленнее, чем обычно).

в моем случае я избавился от всех файлов под SharedPrecompiledHeaders таким образом, и все начало работать нормально:

sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete

особенно если вы строите из командной строки или у вас есть сценарий сборки, очистки цели xcode недостаточно. Вы должны удалить эту папку.

расположение предварительно скомпилированного заголовка можно найти в

Target -> build settings => "Build locations" -> Precompiled headers cached path

удалите эту папку с помощью,

#rm -fr SharedPrecompiledHeaders

enter image description here

Если это не решается очисткой. Это проблема с кэшем сборки-удерживайте клавишу Option и перейдите к продукту > очистить папку сборки. Это исправило мою проблему.

в моем случае Xcode создавал папку DerivedData в моем основном пакете проекта(/Users/Path_to_your_project_source_code/YourProjectName / DerivedData)

Я просто удалил эту папку из моего пакета исходного кода, и теперь он работает.

чтобы проверить перейдите в Настройки Xcode - > Locations и посмотрите, выбран ли DerivedData в "Relative". Смотрите рисунок ниже enter image description here

вы должны удерживать нажатой "shift + command + C", а затем вы будете строить успешно

чистка и удаление производных данных не работает для меня. То, что действительно работает, касается / сохраняет.PCH-файл (добавьте символ, затем удалите его), чтобы заставить его быть восстановленным. Это сделало свое дело.

Если выполнение чистой сборки не работает для вас, найдите файлы PCH в /var/folders/../SharedPrecompiledHeaders и удалите файлы PCH, которые работали для меня.

вы можете попробовать очистить продукт или папку сборки:

SHIFT + команда + K

опции + SHIFT + команда + K

в каталоге проекта ios Перейдите в построить и удалить ModuleCache. Беги react-native run-ios снова, он должен работать, как ожидалось. Резюме -rm -rf ios/build/ModuleCache

Я попытался очистить проект и очистить папку сборки, которые оба не работали.

после этого я полностью вышел из xCode, удалил папку производных данных в ее стандартном местоположении: ~/Library/Developer/Xcode/DerivedData, снова запустил xCode и построил проект.

Это, казалось, решило проблему для меня.

обновлено

Это отлично сработало для меня:

  • закройте проект или рабочее пространство.
  • в Finder :shift shift+cmd cmd+G
  • Вставить: ~ / Библиотека / Разработчик / Xcode / DerivedData/
  • удалите папку ModuleCache и очистите корзину.
  • откройте свой проект.
  • очистить :shift shift+cmd cmd+K
  • Build :cmd cmd+B

xCode 7.3.1
ссылка здесь

Я встретил эту ошибку при попытке построить проект с помощью Swift Package Manager.

решение просто удалить .

для меня это всегда будет происходить, когда я копирую свой проект в другое место. Я бы сделал это, чтобы подтолкнуть его в РЕПО или что-то.

Мне нужно удалить папку сборки (rm-rf Build/) в старых и новых местах, чтобы заставить ее работать. Это имеет смысл, потому что папка сборки будет иметь данные, которые не имеют отношения к новому местоположению.

очистка производных данных или удаление папок sharedPrecompiledHeaders на самом деле не делали этого в этом случае.

Comments

    Ничего не найдено.