3

我正在使用 Xcode 4.6、10.8.2。

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

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

谢谢。

[编辑]

好的,感谢下面的建议,这就是我正在做的......

ResourceRules.plist添加到项目中(如果需要,每个 Target 一个)

使用“省略”键值对列表填充 ResourceRules.plist,每个文件或目录对应一个您不想进行代码签名的文件或目录。从网上某处复制 plist 结构。

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

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

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

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

使用您的开发者 ID 进行代码设计

在 Finder 中打开生成的应用程序包,根据需要修改文件

在终端中测试应用程序:

codesign -vv myApp

(这将告诉您是否缺少或已添加任何代码签名文件。)

4

1 回答 1

4

它只是可执行文件吗?

可执行文件实际上被修改为包含代码签名信息(哈希和可能的权利文件),但代码签名目录 ( _CodeSignature) 也被添加到包含应用程序中所有文件的哈希的应用程序包中。

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

不。(好吧,是的,如果您之后再次对其进行代码签名。)

或者,实际上,如果您使用资源文件来描述要用于创建代码签名的文件,那么您可以排除某些文件,然后您可以稍后修改它们并且仍然具有有效的代码签名。

于 2013-02-21T05:46:09.230 回答