如何从 XCode 中的 DerivedData 下的模块文件中停止“签名不匹配”错误?

Posted

技术标签:

【中文标题】如何从 XCode 中的 DerivedData 下的模块文件中停止“签名不匹配”错误?【英文标题】:How do I stop a 'signature mismatch' error from a module file under DerivedData in XCode? 【发布时间】:2021-09-10 08:16:20 【问题描述】:

我们有一个 ios 项目,当使用 XCode 12.5 构建时,会出现类似于以下内容的错误:

模块文件 '/Users/revolt/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/J3JDK8UPXZ4K/Foundation-39SXNSRMYWPGZ.pcm' 已过期,需要重建:签名不匹配

这不会在第一次构建时发生,但在生成缓存后可以通过删除 DerivedData 文件夹来“解决”。

【问题讨论】:

【参考方案1】:

这是bug in XCode。在撰写本文时,它似乎没有发生在 XCode 13 beta 中。解决方法是“...通过将 -fno-modules-global-index 添加到 OTHER_CFLAGS 来禁用全局模块索引。”。

【讨论】:

嗨,我正在使用 XCode 13.2 并且仍然重现此错误。将 -fno-modules-global-index 设置为 OTHER_CFLAGS 也不能解决它。您是否仅通过升级 XCode 来修复它? 是的,但我可能也清除了 DerivedData。我不再在 XCode 13.1 上看到这个问题。尚未尝试 13.2。

以上是关于如何从 XCode 中的 DerivedData 下的模块文件中停止“签名不匹配”错误?的主要内容,如果未能解决你的问题,请参考以下文章

DerivedData/ModuleCache 中的致命错误

为啥 Xcode 将 DerivedData 放在我的项目文件夹中?

来自命令行的 Xcode 代码覆盖率

为啥清除 Derived Data 会清除 Xcode 中的各种错误?

在 xcode 构建步骤之后,为啥 DerivedData Build/Products 为空?

多台机器上的 Xcode 4 项目