【问题标题】:Mac - Developer ID - Code Signing - What gets signed?Mac - 开发人员 ID - 代码签名 - 签署了什么?
【发布时间】:2013-02-06 08:53:15
【问题描述】:

我使用的是 Xcode 4.6、10.8.2。

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

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

谢谢。

[编辑]

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

向项目添加一个ResourceRules.plist(必要时为每个目标添加一个)

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

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

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

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

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

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

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

在终端中测试应用程序:

codesign -vv myApp

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

【问题讨论】:

    标签: xcode bundle code-signing


    【解决方案1】:

    它只是可执行文件吗?

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

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

    没有。 (嗯,是的,如果你之后再次对其进行代码签名。)

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

    【讨论】:

    • 您还可以设置自定义资源文件,该文件描述要在代码签名中包含/排除哪些资源。如果您排除某个资源,则可以在不破坏代码签名的情况下对其进行修改。
    • 谢谢你们的帮助。凯文,你能解释一下这个自定义资源文件吗?或者将我指向 Apple 支持 URL?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2014-01-25
    • 1970-01-01
    相关资源
    最近更新 更多