codesign还要我签署我的数据文件?

时间:2014-08-09 21:10:58

标签: xcode macos sign codesign mach-o

我有一个OSX应用程序,在bundle的MacOS目录中,我有一个可执行文件和一堆dylib。当然,Info.plist的{​​{1}}条目指向可执行文件。当我尝试签名时,CFBundleExecutable抱怨(截至10.9)我的dylib没有签名,这是有道理的。所以我签了所有的dylibs,我认为这会让我现在签署主要的可执行文件。

问题是我的codesign目录中实际上还有几个数据文件。该应用程序是一个跨平台的Qt应用程序,数据文件是相对于主可执行文件找到的本地化文件。 MacOS抱怨说,在数据文件签名之前,它不想签署我的主要可执行文件。

这只是一个根本错误的事情 - 将任何非机械的东西放入codesign?签署这些数据文件甚至是合理的事情 - 比如Windows上的.cat文件?显然,我不希望MacOS随意地将摘要哈希打到我的数据文件的末尾。

1 个答案:

答案 0 :(得分:1)

是的,这些数据文件应该进入Resources文件夹。

来自Bundle Programming Guide

  

MacOS (必填)

     

包含应用程序的独立可执行代码。通常,此目录仅包含一个二进制文件   应用程序的主要入口点和静态链接的代码。   但是,您可以放置​​其他独立的可执行文件(例如   命令行工具)也在这个目录中。

     

<强>资源

     

包含所有应用程序的资源文件。此目录的此内容进一步组织以区分   本地化和非本地化资源之间。欲获得更多信息   关于此目录的结构,请参阅“The Resources Directory

对数据文件进行协调设置不会改变它们;它们只是记录在_CodeSignature/CodeResources文件中。