签署mac安装程序(pkgmaker)

时间:2013-08-05 02:55:49

标签: macos code-signing packagemaker

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

productsign - 签署'Blah,Inc。' Install.mpkg / CS / Install.mpkg

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

pkgutil --check-signature Install.mpkg

由于证书安装在我的系统中的钥匙串中,安装程序似乎在右上角显示一点锁定。单击此按钮可打开证书。

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

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

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

3)我还使用xcode选项使用证书对我的包中的所有二进制文件(主要是守护进程)进行了编码。我再次能够看到二进制文件已签名,但我确实得到了一条消息 kernel [0]:CODE SIGNING: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。但是我仍然不太清楚他们会得到什么。有人能帮助我吗?

2 个答案:

答案 0 :(得分:3)

可以 签署。mpkg个套餐,但您必须使用Developer ID Application证书和签名Developer ID Installer证书。

当您在.mpkg签名时,您会收到一个警告,内部包裹必须经过签名,但无论是否签署了内部.pkg,签名似乎都有效。

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

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

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

然后是.mpkg do:

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

答案 1 :(得分:-1)

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