当我尝试在 中构建我的应用程序时Xcode
,我收到以下错误消息:
从不同于编译器 ((clang-425.0.27)) 的分支 ((clang-425.0.24)) 构建的 PCH 文件
以前没有发生过,但这是更新 Xcode 后的第一次构建。
其他应用程序可以工作,但不是这个特定的应用程序。
如果我关闭"Precompile Prefix Header"
设置,它可以工作。
如何修复此错误并仍然保持该设置?
当我尝试在 中构建我的应用程序时Xcode
,我收到以下错误消息:
从不同于编译器 ((clang-425.0.27)) 的分支 ((clang-425.0.24)) 构建的 PCH 文件
以前没有发生过,但这是更新 Xcode 后的第一次构建。
其他应用程序可以工作,但不是这个特定的应用程序。
如果我关闭"Precompile Prefix Header"
设置,它可以工作。
如何修复此错误并仍然保持该设置?
这通常是一个缓存问题。通常可以通过按住Option键并选择Product > Clean Build Folder...来解决。
删除DerivedData
项目的文件夹。查看 Xcode 首选项 -> 位置以查看保存位置。
似乎Product > Clean Build Folder...(按下 Option 键)适用于大多数人。请参阅@gaige 选择的答案。
如果您与大多数人(包括我自己)不同,这仍然会给您带来麻烦,XCode 可能会将您共享的预编译头文件留在其他地方。对我来说,它们位于与此类似的文件夹中:
/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders
我刚刚删除了整个 SharedPrecompiledHeaders 文件夹,这为我解决了问题。不过,我不会在这里碰太多其他东西……
其他选项都不适合我,这是修复它的方法:
我删除了缓存文件夹/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
从 Finder 中的项目位置删除Build
和文件夹对我有用。DerivedData
我在尝试使用 Swift Package Manager 构建项目时遇到了这个错误。
解决办法就是删除.build
目录。
升级 Xcode 后,我在多个项目中得到了这个。清洁构建文件夹和清洁没有效果 - @sedes 回答和 @josema.vitaminew 的评论对我有用。但这可能会很棘手,除非你有点狡猾,所以这里有一个一步一步的捷径:
...现在您的所有项目都将“固定”,但必须在第一次零缓存的情况下重新构建自己(因此 NEXT 构建只会比正常慢)。
特别是如果您从命令行构建或者您有构建脚本,那么清理 xcode 目标是不够的。您已删除此文件夹。
预编译的头文件位置可以在
Target -> build settings => "Build locations" -> Precompiled headers cached path
删除此文件夹,
#rm -fr SharedPrecompiledHeaders
就我而言,我以这种方式摆脱了SharedPrecompiledHeaders下的所有文件,一切都开始正常工作:
sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete
对我来说,当我将项目复制到另一个位置时,总会发生这种情况。我会这样做以将其推入回购或其他东西。
我必须删除旧位置和新位置中的 Build 文件夹 (rm -rf Build/) 才能使其正常工作。这是有道理的,因为 Build 文件夹将包含与新位置无关的数据。
在这种情况下,清理派生数据或删除 sharedPrecompiledHeaders 文件夹并没有真正做到这一点。
如果不通过清洗解决。这是一个构建缓存问题 - 按住 Option 键并导航到 Product > Clean Build Folder。这解决了我的问题。
你应该按住“shift + command + C”,然后你会构建成功
您可以尝试清理产品或构建文件夹:
SHIFT+ COMMAND+K
OPTION+ SHIFT+ COMMAND+K
清理和/或删除派生数据对我不起作用。起作用的是触摸/保存 .pch 文件(添加一个字符,然后删除它)以强制重建它。这成功了。
如果进行干净的构建对您不起作用,请在其中查找 PCH 文件/var/folders/../SharedPrecompiledHeaders
并删除对我有用的 PCH 文件。
更新
这对我来说非常有效:
xCode 7.3.1
参考这里
如果您正在通过 进行命令行构建xcodebuild
,请查看是否-derivedDataPath BUILD_DIR
使用了该选项。如果是这样,您的 ModuleCache.noindex 目录将位于 BUILD_DIR 而不是正常的 Xcode 位置。删除 ModuleCache.noindex 目录,一切就绪。
我遇到这种情况是因为我正在构建一个 React Native 应用程序,而 iOS 客户端通常是通过 React Native 工具集从命令行构建的。
我已经尝试清理项目并清理两者都不起作用的构建文件夹。
之后,我完全退出 xCode,在其标准位置删除派生数据文件夹:~/Library/Developer/Xcode/DerivedData,再次启动 xCode 并构建项目。
这似乎为我解决了这个问题。
我刚刚删除DerivedData
并为我工作。