当我尝试在Xcode
中构建我的应用时,收到以下错误消息:
PCH文件由不同的分支((clang-425.0.24))构建而成 编译器((clang-425.0.27))
以前没有发生,但这是更新Xcode后的第一个版本。
其他应用有效,但不是特定应用。
如果我关闭"Precompile Prefix Header"
设置,则可以正常工作。
如何修复此错误并仍然保持该设置?
答案 0 :(得分:233)
这通常是一个缓存问题。通常可以通过按住选项键并选择产品>来解决此问题。清理构建文件夹......
答案 1 :(得分:37)
似乎产品>清洁构建文件夹... (按下Option键)适用于大多数人。请参阅@gaige选择的答案。
如果您与大多数人(包括我自己)不同,这仍然会给您带来麻烦XCode可能会将您的共享预编译头留在别处。对我来说,他们在一个类似的文件夹中:
/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders
我刚刚删除了整个SharedPrecompiledHeaders文件夹,这解决了我的问题。我不会在这里碰到太多其他的东西......
答案 2 :(得分:33)
删除项目的DerivedData
文件夹。在Xcode首选项下查看 - &gt;查看保存位置的位置。
答案 3 :(得分:18)
转到Xcode首选项 - &gt;位置(如wcochran的回答中所述),只需重命名DerivedData文件夹即可。我只是将我的“DerivedData”改为“DerivedData2”,这迫使系统停止引用旧位置。当其他答案都没有起作用时,这就解决了我。见图:
答案 4 :(得分:12)
在Finder中从项目位置删除 mySvc.getUser(userId).then(function(user){
myCtrlInstance.user = user;
});
和Build
文件夹对我有用。
答案 5 :(得分:11)
其他选项都不适用于我,这是修正它的原因:
我在/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
答案 6 :(得分:10)
在您的ios项目目录中,转到 build 并删除 ModuleCache 文件夹。再次运行react-native run-ios
,它应该按预期工作。
摘要 - rm -rf ios/build/ModuleCache
答案 7 :(得分:6)
升级Xcode后,我得到了多个项目。 Clean Build Folder和Clean没有效果 - @sedes回答和@josema.vitaminew的评论为我做了。但除非你使用一点狡猾,否则它可能会很棘手,所以这里有一步一步的快捷方式:
...现在你的所有项目都将是“固定的”,但是必须首次重新构建自己的零缓存(所以只有NEXT构建才会比正常情况慢)。
答案 8 :(得分:5)
在我的情况下,我以这种方式摆脱了 SharedPrecompiledHeaders 下的所有文件,一切都开始正常工作:
sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete
答案 9 :(得分:4)
特别是如果您从命令行构建或者您有构建脚本,则清理xcode目标是不够的。您已删除此文件夹。
预编译的标题位置可以在
中找到Target -> build settings => "Build locations" -> Precompiled headers cached path
使用
删除此文件夹#rm -fr SharedPrecompiledHeaders
答案 10 :(得分:3)
如果没有通过清洁解决。这是构建缓存问题 - 按住Option键并导航到Product&gt;清理构建文件夹。这解决了我的问题。
答案 11 :(得分:3)
在我的情况下,Xcode在我的项目主包中创建了DerivedData文件夹(/ Users / Path_to_your_project_source_code / YourProjectName / DerivedData)
我刚从源代码包中删除了这个文件夹,现在它正在运行。
要检查转到Xcode首选项 - &gt;位置并查看DerivedData是否已选择为&#34; Relative&#34;。见下图
答案 12 :(得分:2)
如果干净的构建不起作用,请在/var/folders/../SharedPrecompiledHeaders
中查找PCH文件并删除对我有用的PCH文件。
答案 13 :(得分:2)
尝试使用Swift Package Manager构建项目时遇到此错误。
解决方案只是删除.build
目录。
答案 14 :(得分:2)
你应该按住“shift + command + C”,然后你将建立成功
答案 15 :(得分:2)
您可以尝试清洁产品或构建文件夹:
SHIFT + COMMAND + K
OPTION + SHIFT + COMMAND + K
答案 16 :(得分:2)
清理和/或删除派生数据对我不起作用。什么工作是触摸/保存.pch文件(添加一个字符,然后删除它)以强制重建它。这就行了。
答案 17 :(得分:1)
我已经尝试清理项目并清理构建文件夹,但这两个文件都不起作用。
之后,我完全退出xCode,删除了标准位置的派生数据文件夹:〜/ Library / Developer / Xcode / DerivedData,再次启动xCode并构建项目。
这似乎解决了我的问题。
答案 18 :(得分:1)
<强>已更新强>
这对我很有用:
xCode 7.3.1
参考here
答案 19 :(得分:1)
对我而言,当我将项目复制到另一个位置时,总会发生这种情况。我这样做是为了将它推入回购或其他东西。
我必须删除旧位置和新位置的Build文件夹(rm -rf Build /)才能使其正常工作。这是有道理的,因为Build文件夹将包含与新位置无关的数据。
在这种情况下,清除派生数据或删除sharedPrecompiledHeaders文件夹并没有真正做到。
答案 20 :(得分:1)
如果要通过xcodebuild
进行命令行构建,请查看是否使用了-derivedDataPath BUILD_DIR
选项。如果是这样,您的ModuleCache.noindex目录将位于BUILD_DIR中,而不是普通的Xcode位置中。删除ModuleCache.noindex目录,一切就绪。
之所以遇到这种情况,是因为我正在构建一个React Native应用,而iOS客户端通常是通过命令行通过React Native工具集构建的。
答案 21 :(得分:0)
我刚刚删除了DerivedData
,并为我工作。