如何纠正 DerivedData 中“签名不匹配”错误的原因?

问题描述

我有一个工作项目,这是一个 Unity 项目,我正在通过 XCode 构建以在 iOS 上进行部署。对于来自 Unity 的全新构建输出,项目构建良好。但是,后续构建导致出现以下错误

Fatal error: module file
  '/Users/[username]/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/1COLSSBQ7KALZ/Darwin-MI6WZSG1PNOM.pcm' is out of date
  and needs to be rebuilt: signature mismatch
note: imported by
  '/Users/[username]/Library/Developer/Xcode/DerivedData/Unity-iPhone-gqzehcbxfluuomeiovvvzvnxptui/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/precompiledHeaders/Prefix-hdtedggfxbhctegyaflvhtxkstvc/Prefix.pch.pch'
1 error generated.

我可以通过删除 DerivedData 中的违规文件夹来解决此问题,但是我知道它会在下一次构建时再次失败。这是关于 SO,删除缓存文件的大多数 DerivedData 问题的答案。

什么是.pcm?为什么它的签名不匹配?最重要的是,我如何才能找出每次不匹配的原因,以便我可以纠正它?

注意:如果有任何区别,DerivedData 目录总是同名。

更新:似乎此错误之前的调用有问题,如下所示:

CompileC /Users/[username]/Library/Developer/Xcode/DerivedData/Unity-iPhone-aesqynxtfnhuudeiojdkzsskrtnw/Build/Intermediates.noindex/Unity-iPhone.build/ReleaseForRunning-iphoneos/UnityFramework.build/Objects-normal/arm64/StoreReview.o Classes/UI/StoreReview.m normal arm64 objective-c

有问题的文件如下所示:

#if PLATFORM_IOS

// This deFinition is here only for compiler to kNow about selector requestReview
@interface UnityStoreReviewController
+ requestReview;
@end

bool UnityRequestStoreReview()
{
    Class classSKStoreReviewController = NSClassFromString(@"SKStoreReviewController");
    if (!classSKStoreReviewController || ![classSKStoreReviewController respondsToSelector: @selector(requestReview)])
    return false;

    [classSKStoreReviewController performSelector:     @selector(requestReview)];
    return true;
}

#endif

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...