【发布时间】:2014-04-18 13:59:00
【问题描述】:
苹果codesign 和productsign 有什么区别。我一直在和他们一起玩,虽然我不能用productsign 签署代码,但似乎我可以用codesign 签署一个包。
所以两个主要问题:
- codesign 和 productsign 有什么区别?
- 我可以使用 codesign 对包进行签名吗?
【问题讨论】:
标签: macos package code-signing pkg-file
苹果codesign 和productsign 有什么区别。我一直在和他们一起玩,虽然我不能用productsign 签署代码,但似乎我可以用codesign 签署一个包。
所以两个主要问题:
【问题讨论】:
标签: macos package code-signing pkg-file
——用于对应用程序包、框架、验证和操作签名等进行代码签名。
— 专门用于对 .pkgs 和 .mpkgs(安装程序包/档案)进行协同设计。
但为什么我可以使用 codesign 对包进行签名?
协同设计工具用于验证您作为单一实体签署的内容——即同一个程序。安装程序包不是一个实体,它实际上是多个(内容、安装程序和安装程序脚本/插件)。由于协同设计工具不会区分您的 .pkg 实际上与其中包含的内容完全不同,因此使用它来签署安装程序包可能会导致签名无效或安装程序崩溃。
Apple 的代码签名指南阅读
“对于安装程序包(.pkg 和 .mpkg 包), 一切都被隐式签名:CPIO 存档包含 有效负载、包含安装脚本的 CPIO 存档和帐单 每个材料 (BOM) 都有一个哈希记录在 XAR 标头中,并且 标题依次被签名。因此,如果您修改安装脚本 (例如)包裹签名后,签名将是 无效。”
【讨论】: