2013-02-21 76 views
3

我使用的是Xcode 4.6,10.8.2。Mac - 开发者ID - 代码签名 - 什么得到签名?

当我在Xcode中对我的Cocoa应用程序进行编码签名时,作为导出过程的一部分,实际得到的签名是什么?它只是可执行文件吗?

签名后,我可以安全地修改软件包的资源文件夹中的文件吗?

谢谢。

[编辑]

OK,感谢以下的建议,这是我在做什么...

添加ResourceRules.plist到项目(一个,如有需要,每一个目标)

使用“省略”键值对的列表填充ResourceRules.plist,其中一个用于您不想编码的每个文件或目录。从某处在线复制plist结构。

在目标的构建设置“代码签名资源规则路径”下,添加字符串“ResourceRules.plist”(不带引号)

选择“产品” - >“归档”

在管理器窗口,按“分发”

选择“导出开发者ID签名的应用程序”

不要放弃你的开发者ID的代码签名

打开在Finder中产生的应用程序包,修改文件的要求

测试应用在终端:

codesign -vv myApp 

(这将告诉你,如果任何codesigned文件丢失,或已加入)

回答

4

它只是可执行文件吗?

的可执行文件实际上是修改以包含代码签名信息(散列和潜在的权利文件),但代码签名目录(_CodeSignature)也加入到其中包含在你的应用程序中的所有文件的哈希值的应用程序包。

签名后,我可以安全地修改软件包的资源文件夹中的文件吗?

号(嗯,是的,如果你再协同设计它之后。)

或者,其实,如果你使用的是描述了文件将被用于创建代码签名,然后一个资源文件你可以排除某些文件,然后你可以稍后修改它们,并且仍然有一个有效的代码签名。

+0

您还可以设置一个自定义资源文件,该文件描述代码签名中包含/排除哪些资源。如果您排除资源,则可以在不破坏代码签名的情况下修改资源。 – 2013-02-21 05:48:44

+0

@KevinBallard很高兴知道,谢谢! – 2013-02-21 05:52:51

+0

谢谢你们的帮助。凯文,你可以请解释关于这个自定义资源文件?或者将我指向Apple支持URL? – Womble 2013-02-21 07:10:45