如何解决Xcode对多个共享相同路径的二进制文件的错误?

时间:2015-06-14 08:46:26

标签: xcode

当我尝试从Archives屏幕导出我的应用程序的签名副本时,出现以下错误。

我使用find . -type l ls在项目目录中查找符号链接:没有。我去了这个档案的Xcode/Archives文件夹并在那里搜索了符号链接,但是有一些但是没有一个在错误消息中提到的DevMateKit.framework中。我还尝试添加构建步骤来手动删除第二个二进制文件,但它没有帮助。

代码签名由Xcode自动完成,文件正在通过标准的Copy Files任务进行复制。还有一个手动代码签名,通过运行脚本任务完成,该任务手动将不同的框架标记为错误消息中的框架(尽管我无法看到它是如何相关的)。我的Xcode版本是6.3.1。

有什么建议吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您使用的是DevMateKit v1.1.1或更低版本,请检查您的 Link Binary With Libraries '构建阶段和阶段,您将复制框架并从列表中删除 DevMateIssuesReporter.framework (如果它存在)。如果它没有帮助,只需联系DevMate支持解决此问题或使用GitHub创建新问题(https://github.com/DevMate/DevMateKit

答案 1 :(得分:0)

好的,所以我相信发生这种情况的原因如下。 DevMateKit.framework由开发人员预先签署。但是我怀疑它们的源代码链中有符号链接,并且它们已经以这种错误的方式对它进行了签名,但是当打包下载框架时已经删除了符号链接,因此看起来没有任何代码可以完成。

我尝试自己签署代码,我认为这样可行,但经过一些实验决定只删除直接在任何CrashReporter.framework目录中的二进制文件,并将其留在任何CrashReporter.framework/Versions/.../内目录。这将删除重复的二进制文件,并且看起来效果很好。

但我不是这个过程的专家,所以我完全有可能做错了。