Apple codesign
和productsign
之间有何区别?我一直在和他们玩耍,虽然我无法使用productsign
签署代码,但似乎我可以使用codesign
签名。
所以有两个主要问题:
答案 0 :(得分:6)
- 用于协同签署应用程序包,框架,验证和操作签名等。
- 专门用于代码签名.pkgs和.mpkgs(安装程序包/存档)。
但为什么我可以使用编码签名包?
代码签名工具用于验证您签署的单个实体 - 意味着相同的程序。安装程序包不是一个实体,实际上是几个(内容,安装程序和安装程序脚本/插件)。由于代码签名工具没有区分您的.pkg实际上与其中包含的内容完全分开,因此使用它来签署安装程序包可能会导致签名无效或安装程序崩溃。
Apple的代码签名指南阅读
“对于安装程序包(.pkg和.mpkg包), 一切都是隐式签名的:CPIO档案包含 有效负载,包含安装脚本的CPIO存档,以及账单 材料(BOM)每个都有一个记录在XAR头中的哈希值 标题依次签名。因此,如果您修改安装脚本 (例如)在签名包之后,签名将是 无效“。