【问题标题】:Signing mac installer (pkgmaker)签署 mac 安装程序 (pkgmaker)
【发布时间】:2013-08-05 02:55:49
【问题描述】:

我的安装程序是使用 PackageMaker 创建的。之后,我使用以下命令对安装程序进行了代码签名。

productsign --sign 'Blah, Inc.' Install.mpkg/CS/Install.mpkg

这似乎工作得很好,我可以看到它是使用以下命令签名的。

pkgutil --check-signature Install.mpkg

由于证书以钥匙串的形式安装在我的系统上,安装程序似乎在右上角显示了一个小锁。单击此按钮将打开证书。

如果将安装程序放置在未安装证书的系统中,则不再看到锁。但是我仍然可以运行命令来检查证书。

1) 安装前是否有图形方式来检查代码签名? (我不想运行命令行)

2) 我使用 finder 从 mpkg 文件中删除了一个文件夹,以查看安装程序是否会抱怨篡改。但这不会发生。如果被篡改,安装程序是否可以停止安装?

3) 我还使用 xcode 的选项对我的包中的所有二进制文件(主要是守护进程)进行了代码签名以使用证书。我再次能够看到已签名的二进制文件,但是我确实收到了一条消息 内核[0]:代码签名:cs_invalid_page(0x1000):p=224[MyDaemon] 清除 CS_VALID。

谷歌搜索,我找到了 http://feedback.photoshop.com/photoshop_family/topics/photoshop_13_0_4_x64_how_can_i_get_rid_of_the_could_not_complete_your_request_because_of_a 。但是,我仍然不太清楚他们在做什么。有人可以帮我吗?

【问题讨论】:

    标签: macos code-signing packagemaker


    【解决方案1】:

    可以签署 .mpkg 包,但必须使用 Developer ID Application 证书而不是Developer ID Installer 证书签署.

    当您在.mpkg 上签名时,您会收到一个警告,提示必须对内部包进行签名,但无论是否签名内部.pkg,签名似乎都是有效的。

    我已经测试过修改内部 .pkg 会导致 .mpkg 无法通过 Gatekeeper 检查

    因此,对于每个内部 .pkg 文件,您应该:

    sudo productsign --sign "<Developer ID Installer: Cert>" "<source.mpkg>/Contents/Packages/<source.pkg>" "<destination.mpkg>/Contents/Packages/<source.pkg>"
    

    然后为 .mpkg 做:

    sudo productsign --sign "<Developer ID Application: Cert>" "<Source .mpkg>" "<Destination .mpkg>"
    

    【讨论】:

    • 有道理。无论如何,我搬到了扁平包装。我觉得这样更好。
    • 因为有插件,无法展平;但是是的,如果可以的话,它会更容易变平。
    • 奇怪,我也有插件。我假设该插件用于在安装过程中插入额外的步骤。即使使用插件,我也可以将其展平。尝试使用 Packages (s.sudre.free.fr/Software/Packages/about.html) 而不是 PackageMaker。这使您即使使用插件也可以将其展平。
    • @hoss 我已经解决了这个问题。你能帮忙解决我的问题吗
    【解决方案2】:

    您只能签名flat packages。您的软件包具有扩展名 .mpkg,我认为这是较旧的捆绑格式。如果要签名,请确保您使用的是平面包。

    【讨论】:

    • 我正在使用包。前段时间尝试过扁平化,还以为不允许插件,我得再试试。
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多