【问题标题】:Whats the difference between codesign and productsign?协同设计和产品设计有什么区别?
【发布时间】:2014-04-18 13:59:00
【问题描述】:

苹果codesignproductsign 有什么区别。我一直在和他们一起玩,虽然我不能用productsign 签署代码,但似乎我可以用codesign 签署一个包。

所以两个主要问题:

  • codesign 和 productsign 有什么区别?
  • 我可以使用 codesign 对包进行签名吗?

【问题讨论】:

    标签: macos package code-signing pkg-file


    【解决方案1】:

    codesign

    ——用于对应用程序包、框架、验证和操作签名等进行代码签名。

    productsign

    — 专门用于对 .pkgs 和 .mpkgs(安装程序包/档案)进行协同设计。

    但为什么我可以使用 codesign 对包进行签名?

    协同设计工具用于验证您作为单一实体签署的内容——即同一个程序。安装程序包不是一个实体,它实际上是多个(内容、安装程序和安装程序脚本/插件)。由于协同设计工具不会区分您的 .pkg 实际上与其中包含的内容完全不同,因此使用它来签署安装程序包可能会导致签名无效或安装程序崩溃。

    Apple 的代码签名指南阅读

    “对于安装程序包(.pkg 和 .mpkg 包), 一切都被隐式签名:CPIO 存档包含 有效负载、包含安装脚本的 CPIO 存档和帐单 每个材料 (BOM) 都有一个哈希记录在 XAR 标头中,并且 标题依次被签名。因此,如果您修改安装脚本 (例如)包裹签名后,签名将是 无效。”


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 2022-11-02
      • 1970-01-01
      • 2015-12-28
      • 2016-06-10
      相关资源
      最近更新 更多