134

当我尝试在 中构建我的应用程序时Xcode,我收到以下错误消息:

从不同于编译器 ((clang-425.0.27)) 的分支 ((clang-425.0.24)) 构建的 PCH 文件

以前没有发生过,但这是更新 Xcode 后的第一次构建。

其他应用程序可以工作,但不是这个特定的应用程序。

如果我关闭"Precompile Prefix Header"设置,它可以工作。

如何修复此错误并仍然保持该设置?

4

22 回答 22

249

这通常是一个缓存问题。通常可以通过按住Option键并选择Product > Clean Build Folder...来解决。

于 2013-03-17T16:31:16.787 回答
49

删除DerivedData项目的文件夹。查看 Xcode 首选项 -> 位置以查看保存位置。

于 2015-05-06T19:52:40.970 回答
39

似乎Product > Clean Build Folder...(按下 Option 键)适用于大多数人。请参阅@gaige 选择的答案。

如果您与大多数人(包括我自己)不同,这仍然会给您带来麻烦,XCode 可能会将您共享的预编译头文件留在其他地方。对我来说,它们位于与此类似的文件夹中:

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

我刚刚删除了整个 SharedPrecompiledHeaders 文件夹,这为我解决了问题。不过,我不会在这里碰太多其他东西……

于 2013-03-19T20:54:17.343 回答
25

转到 Xcode Preferences->Locations(如 wcochran 的回答中所述)并简单地重命名您的 DerivedData 文件夹。我只是将我的从“DerivedData”更改为“DerivedData2”,这迫使系统停止引用旧位置。当其他答案都不起作用时,这为我解决了这个问题。见图片:

在此处输入图像描述

于 2015-12-09T20:48:19.500 回答
18

其他选项都不适合我,这是修复它的方法:

我删除了缓存文件夹/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

于 2015-06-22T01:18:57.300 回答
14

在您的 ios 项目目录中,转到构建和删除ModuleCache文件夹。再次运行react-native run-ios,它应该按预期工作。概括 -rm -rf ios/build/ModuleCache

于 2018-01-04T22:38:18.897 回答
13

从 Finder 中的项目位置删除Build和文件夹对我有用。DerivedData

于 2015-05-15T18:42:46.030 回答
7

我在尝试使用 Swift Package Manager 构建项目时遇到了这个错误。

解决办法就是删除.build目录。

于 2016-12-11T05:07:23.347 回答
6

升级 Xcode 后,我在多个项目中得到了这个。清洁构建文件夹和清洁没有效果 - @sedes 回答和 @josema.vitaminew 的评论对我有用。但这可能会很棘手,除非你有点狡猾,所以这里有一个一步一步的捷径:

  1. 转到失败的构建日志
  2. 使用 cmd-f "SharedPrecompiledHeaders" 找到它(它将在一个巨大的可怕复杂命令行的中间)
  3. 拖动选择文本“SharedPrecompiledHeaders”和之前但不是之后的所有字符,直到您到达该路径位的开头(仍在大文本块的中间),例如:“/var/folders/03 /n71d4r551jv40j5nb8r9fjy80000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
  4. 打开查找器
  5. 菜单:前往 -> 前往文件夹...
  6. 复制/粘贴选定的路径
  7. 在“SharedPrecompiledHeaders”中删除所有子文件夹(这是安全的:它只是缓存的数据)

...现在您的所有项目都将“固定”,但必须在第一次零缓存的情况下重新构建自己(因此 NEXT 构建只会比正常慢)。

于 2013-05-14T15:39:37.060 回答
5

特别是如果您从命令行构建或者您有构建脚本,那么清理 xcode 目标是不够的。您已删除此文件夹。

预编译的头文件位置可以在

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

删除此文件夹,

#rm -fr SharedPrecompiledHeaders

在此处输入图像描述

于 2013-04-24T09:02:00.933 回答
5

就我而言,我以这种方式摆脱了SharedPrecompiledHeaders下的所有文件,一切都开始正常工作:

sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete
于 2014-10-14T18:25:55.233 回答
4

对我来说,当我将项目复制到另一个位置时,总会发生这种情况。我会这样做以将其推入回购或其他东西。

我必须删除旧位置和新位置中的 Build 文件夹 (rm -rf Build/) 才能使其正常工作。这是有道理的,因为 Build 文件夹将包含与新位置无关的数据。

在这种情况下,清理派生数据或删除 sharedPrecompiledHeaders 文件夹并没有真正做到这一点。

于 2017-08-06T15:01:17.877 回答
3

如果不通过清洗解决。这是一个构建缓存问题 - 按住 Option 键并导航到 Product > Clean Build Folder。这解决了我的问题。

于 2013-03-22T07:04:50.577 回答
3

在我的情况下,Xcode 在我的项目主包中创建 DerivedData 文件夹(/Users/Path_to_your_project_source_code/YourProjectName/DerivedData)

我刚刚从我的源代码包中删除了这个文件夹,现在它可以工作了。

要检查转到 Xcode Preferences->Locations 并查看 DerivedData 是否选择为“Relative”。见下图 在此处输入图像描述

于 2016-08-20T05:32:55.793 回答
2

你应该按住“shift + command + C”,然后你会构建成功

于 2013-03-20T05:49:29.987 回答
2

您可以尝试清理产品或构建文件夹:

SHIFT+ COMMAND+K

OPTION+ SHIFT+ COMMAND+K

于 2013-03-23T19:01:30.983 回答
2

清理和/或删除派生数据对我不起作用。起作用的是触摸/保存 .pch 文件(添加一个字符,然后删除它)以强制重建它。这成功了。

于 2013-04-01T15:23:02.430 回答
2

如果进行干净的构建对您不起作用,请在其中查找 PCH 文件/var/folders/../SharedPrecompiledHeaders并删除对我有用的 PCH 文件。

于 2013-04-19T06:16:06.410 回答
2

更新

这对我来说非常有效:

  • 关闭您的项目或工作区。
  • 在 Finder 中:⇧shift+⌘cmd+G
  • 粘贴:~/Library/Developer/Xcode/DerivedData/
  • 删除 ModuleCache 文件夹并清空垃圾箱。
  • 打开你的项目。
  • 清理:⇧shift+⌘cmd+K
  • 构建:⌘cmd+B

xCode 7.3.1
参考这里

于 2016-06-22T08:40:56.387 回答
2

如果您正在通过 进行命令行构建xcodebuild,请查看是否-derivedDataPath BUILD_DIR使用了该选项。如果是这样,您的 ModuleCache.noindex 目录将位于 BUILD_DIR 而不是正常的 Xcode 位置。删除 ModuleCache.noindex 目录,一切就绪。

我遇到这种情况是因为我正在构建一个 React Native 应用程序,而 iOS 客户端通常是通​​过 React Native 工具集从命令行构建的。

于 2018-12-13T19:24:48.227 回答
1

我已经尝试清理项目并清理两者都不起作用的构建文件夹。

之后,我完全退出 xCode,在其标准位置删除派生数据文件夹:~/Library/Developer/Xcode/DerivedData,再次启动 xCode 并构建项目。

这似乎为我解决了这个问题。

于 2015-12-10T08:33:51.600 回答
0

我刚刚删除DerivedData并为我工作。

于 2019-06-21T14:42:26.550 回答