Applecodesign
和productsign
. 我一直在和他们一起玩,虽然我不能用productsign
它签署代码,但我似乎可以用codesign
.
所以两个主要问题:
- 协同设计和产品设计有什么区别?
- 我可以使用 codesign 对包进行签名吗?
Applecodesign
和productsign
. 我一直在和他们一起玩,虽然我不能用productsign
它签署代码,但我似乎可以用codesign
.
所以两个主要问题:
— 用于对应用程序包、框架、验证和操作签名等进行代码设计。
— 专门用于对 .pkgs 和 .mpkgs(安装程序包/档案)进行代码设计。
但是为什么我可以使用 codesign 对包进行签名呢?
协同设计工具用于验证您作为单一实体签署的内容——即同一个程序。安装程序包不是一个实体,它实际上是多个(内容、安装程序和安装程序脚本/插件)。由于协同设计工具不会区分您的 .pkg 实际上与其中包含的内容完全不同,因此使用它来签署安装程序包可能会导致签名无效或安装程序崩溃。
苹果的代码签名指南阅读
“在安装程序包(.pkg 和 .mpkg 包)的情况下,所有内容都被隐式签名:包含有效负载的 CPIO 存档、包含安装脚本的 CPIO 存档和材料清单 (BOM) 每个都有一个哈希记录在XAR 标头,而该标头又被签名。因此,如果您在包签名后修改安装脚本(例如),则签名将无效。