Ответ 1
Это проблема кэширования. Обычно его можно решить, удерживая клавишу Option и выбрав Продукт > Очистить папку сборки...
Когда я пытаюсь создать свое приложение в Xcode
, я получаю это сообщение об ошибке:
Файл PCH, построенный из другой ветки ((clang-425.0.24)), чем компилятор ((clang-425.0.27))
Этого не происходит раньше, но это была первая сборка после обновления Xcode.
Другие приложения работают, но не этот конкретный.
Если отключить параметр "Precompile Prefix Header"
, он будет работать.
Как исправить эту ошибку и сохранить эту настройку?
Это проблема кэширования. Обычно его можно решить, удерживая клавишу Option и выбрав Продукт > Очистить папку сборки...
Кажется, что Продукт > Clean Build Folder... (при нажатии клавиши Option) работает для большинства людей. См. Выбранный ответ @gaige.
Если вы не похожи на большинство людей (включая меня), и это все еще вызывает проблемы, XCode, скорее всего, оставил ваши общие предварительно скомпилированные заголовки в другом месте. Для меня они были в папке, подобной этой:
/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders
Я просто удалил всю папку SharedPrecompiledHeaders и решил все для меня. Я бы не стал трогать много другого здесь, хотя...
Удалите папку DerivedData
для проекта. Посмотрите в настройках XCode → Locations, чтобы увидеть, где вы сохраните его.
Перейдите в Настройки Xcode- > Местоположения (как указано в ответе wcochran) и просто переименуйте папку DerivedData. Я просто изменил свою версию с "DerivedData" на "DerivedData2" и заставил систему перестать ссылаться на прежнее местоположение. Это фиксировало это для меня, когда никто из других ответов не работал. См. Рис.:
Для меня работало удаление папок 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
В каталоге вашего проекта ios перейдите к созданию и удалению папки ModuleCache. Снова react-native run-ios
, он должен работать как положено. Сводка - rm -rf ios/build/ModuleCache
После обновления Xcode я получал это с несколькими проектами. Чистая коллекция Folder и Clean не имела никакого эффекта - ответ @sedes и комментарий @josema.vitaminew сделали это для меня. Но это может быть сложно, если вы не используете немного хитрости, поэтому здесь шаг за шагом:
... и теперь все ваши проекты будут "исправлены", но сначала придется перестроить их с нулевым кэшированием (поэтому NEXT build ONLY будет медленнее, чем обычно).
в моем случае я избавился от всех файлов под SharedPrecompiledHeaders таким образом, и все стало нормально работать:
sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete
Специально, если вы создаете из командной строки или у вас есть сборка script, очистка цели xcode недостаточно. Вы удалите эту папку.
Предварительно скомпилированное местоположение заголовка можно найти в
Target -> build settings => "Build locations" -> Precompiled headers cached path
Удалите эту папку с помощью
#rm -fr SharedPrecompiledHeaders
Если он не решается путем очистки. Это проблема с кешем сборки - нажмите клавишу Option и перейдите в Product > Clean Build Folder. Это исправило мою проблему.
В моем случае Xcode создавал папку DerivedData в главном комплекте проекта (/Users/Path_to_your_project_source_code/YourProjectName/DerivedData)
Я просто удалил эту папку из своего исходного кода и теперь он работает.
Чтобы проверить Go на Настройки Xcode- > Местоположение и посмотреть, выбрано ли DerivedData для параметра "Относительное". См. Рисунок ниже
вы должны удерживать "shift + command + C", а затем вы будете преуспевать
Вы можете попробовать очистить продукт или папку сборки:
SHIFT + COMMAND + K
OPTION + SHIFT + COMMAND + K
Очистка и/или удаление производных данных не помогли мне. Что работа коснулась/сохранила файл .pch(добавьте символ, а затем удалите его), чтобы заставить его перестроить. Это сделало трюк.
Если чистая сборка не работает для вас, найдите файлы PCH в /var/folders/../SharedPrecompiledHeaders
и удалите файлы PCH, которые сработали для меня.
Я встретил эту ошибку при попытке создать проект с помощью диспетчера пакетов Swift.
Решение просто удаляет каталог .build
.
Я пробовал очистить проект и очистить папку сборки, которые оба не работали.
После этого я полностью завершаю xCode, удалив папку с производными данными в ее стандартном расположении: ~/Library/Developer/Xcode/DerivedData, снова начал xCode и создал проект.
Это, похоже, решило проблему для меня.
ОБНОВЛЕНО
Это отлично сработало для меня:
xCode 7.3.1
ссылка здесь
Для меня это всегда произойдет, когда я копирую проект в другое место. Я бы сделал это, чтобы перевести его в репо или что-то в этом роде.
Мне нужно удалить папку Build (rm -rf Build/) в старых и новых местах, чтобы заставить ее работать. Это имеет смысл, потому что папка Build будет иметь данные, которые не имеют отношения к новому местоположению.
Очистка полученных данных или удаление папок sharedPrecompiledHeaders на самом деле не сделали этого в этом случае.
Если вы выполняете сборку из командной строки через xcodebuild
, посмотрите, не используется ли -derivedDataPath BUILD_DIR
. Если это так, ваш каталог ModuleCache.noindex будет находиться в BUILD_DIR вместо обычного местоположения Xcode. Удалите каталог ModuleCache.noindex, и все будет готово.
Я столкнулся с этой ситуацией, потому что я создаю приложение React Native, а клиент iOS обычно создается из командной строки с помощью набора инструментов React Native.
Я просто удалил DerivedData
и работал на меня.