Как исправить ошибку PCH?
когда я пытаюсь построить свое приложение в Xcode, Я получаю это сообщение об ошибке:
PCH файл построен из другой ветви ((clang-425.0.24)), чем
компилятор ((clang-425.0.27))
это не произошло раньше, но это была первая сборка после обновления Xcode.
другие приложения работают, но не этот конкретный.
Если я выключу "Precompile Prefix Header" настройки, он работает.
Как исправить эту ошибку и сохранить эту настройку дальше?
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", и это заставило систему прекратить ссылаться на старое местоположение. Это исправило его для меня, когда ни один из других ответов не работал. Смотрите фото:
ни один из других вариантов не работал для меня, вот что исправлено:
Я удалил папку кэша в
/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 сделал это для меня. Но это может быть сложно, если вы не используете немного хитрости, так что вот шаг за шагом ярлык:
- перейдите в журнал сборки, который не удалось
- используйте cmd-f "SharedPrecompiledHeaders", чтобы найти его (он будет находиться в середине массивной ужасной сложной командной строки)
- перетащите-выделите текст "SharedPrecompiledHeaders "и все символы до, но не после него, пока вы не доберетесь до начала этого бита пути (все еще в середине большого блока текста), например, для меня:" /var/folders/03/n71d4r551jv40j5nb8r9fjy80000gn/C/com.яблоко.Xcode.501 / SharedPrecompiledHeaders
- откройте Finder
- меню: перейти - > перейти в папку...
- копировать/вставить выбранный путь
- в" 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
Если это не решается очисткой. Это проблема с кэшем сборки-удерживайте клавишу Option и перейдите к продукту > очистить папку сборки. Это исправило мою проблему.
в моем случае Xcode создавал папку DerivedData в моем основном пакете проекта(/Users/Path_to_your_project_source_code/YourProjectName / DerivedData)
Я просто удалил эту папку из моего пакета исходного кода, и теперь он работает.
чтобы проверить перейдите в Настройки Xcode - > Locations и посмотрите, выбран ли DerivedData в "Relative". Смотрите рисунок ниже
чистка и удаление производных данных не работает для меня. То, что действительно работает, касается / сохраняет.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