我刚刚更新到 Xcode 版本 4.6.2 (4H10003) 并尝试在模拟器中运行以前工作的应用程序项目并收到以下错误并且构建失败。
从不同于编译器 ((clang-425.0.28)) 的分支 ((clang-425.0.27)) 构建的 PCH 文件
出了什么问题,如何解决?
清理项目;按住 Option 以便您清理整个构建文件夹和中间体。您可能必须退出 Xcode 并在 Finder 中手动丢弃 DerivedData 文件夹的全部内容,正如我在这里描述的:如何清空缓存和清理所有目标 Xcode 4
转到您的项目Build Settings
,找到一个名为 的设置Precompiled Headers Cache Path
,然后删除该文件夹
使用command+shift+k
并再次运行现有项目进行清理。
已知的问题
建造
在构建以前使用 Xcode 4.6.1 或更早版本构建的产品时,构建失败并出现类似以下错误:
从不同于编译器 ((clang-425.0.28)) 的分支 ((clang-425.0.27)) 构建的 PCH 文件
要解决此问题,请在构建产品之前选择产品 > 清洁。13663167
表演产品 > 清洁工作
我已经尝试了以上所有方法,它在 Xcode UI 中运行良好,但是当我从命令行运行xcodebuild时它仍然失败。
这是由于对其他库及其预编译头文件的依赖。从命令行运行时,看起来像 xcodebuild store/reads 从这里预编译的头文件:
/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
清理该文件夹后,xcodebuild 成功。
我不得不手动删除~/Library/Developer/Xcode/DerivedData/
Clean 对我不起作用。
特别是如果您从命令行构建或者您有构建脚本,那么清理 xcode 目标是不够的。您必须删除此文件夹。
预编译头的确切位置可以在项目中找到,部分文件夹路径是随机的(我猜),尤其是 /var/folders/xx..xxx/C 之后。
Target -> build settings => "Build locations" -> Precompiled headers cached path
运行终端并转到此文件夹并删除(使用命令),
#rm -fr SharedPrecompiledHeaders
使用“command+shift+k”来清理你的项目,那么你会没事的。
清理您的项目并运行
产品-> 清洁然后运行。