无法签署 Mac 安装程序以在 Mac 应用商店之外分发

Posted

技术标签:

【中文标题】无法签署 Mac 安装程序以在 Mac 应用商店之外分发【英文标题】:Unable to sign a Mac installer for distribution outside the Mac app store 【发布时间】:2012-07-11 12:43:44 【问题描述】:

我在为 mac 应用程序签署安装程序时遇到问题,我计划在 mac 应用商店之外分发该安装程序。我正在使用开发者安装程序证书对应用程序进行签名,但它给出了一些错误。下面是我用来签署应用程序的命令。

productsign --sign "Developer ID Installer: XYZ" "/path/to/input" "/path/to/output" 

productsign: signing product with identity "Developer ID Installer: XYZ" from keychain "login keychain Path"

productsign: adding intermediate certificate "Developer ID Certification Authority"

productsign: adding intermediate certificate "Apple Root CA"

productsign: error: Can't add contents of input archive to output.

是否有人对此问题有解决方案或任何想法。

    如果我尝试通过 xcode 创建安装程序,那么它将正常工作。但是由于我的应用程序安装程序中包含多个 .pkg 文件,因此我们正在通过 pakagemaker 创建安装程序文件。我的下一个查询是:

    是否可以成功签署使用 pakagemaker 创建的安装程序。

    是否可以签署 .mpkg 文件。

提前致谢。

【问题讨论】:

【参考方案1】:

如果您的 .pkg 是一个捆绑包(其中包含内容的文件夹)-- 在签名之前先将其展平:

pkgutil --flatten orig.pkg flat.pkg

productsign --sign '开发者 ID 应用程序:Foo Guy' plat.pkg flat_signed.pkg

【讨论】:

对于它的价值,我在尝试签署捆绑包 (mpkg) 时遇到了原始错误。我将我的项目切换为扁平化包 (pkg),并且现在可以毫无错误地进行签名。我怀疑这与 mpkg 实际上只是一个花哨的目录并且可能很难签署目录这一事实有关。【参考方案2】:

当您将“安装属性”中的最小目标设置为 10.5(豹)时,这种情况就会消失!

(使用 packagemaker 打开安装程序时,选择“项目”>“安装属性”以找到该设置。)

所以这似乎是某种兼容性问题。

【讨论】:

我正在使用某个第三方库,我正在尝试对其进行签名但遇到相同的错误。那么我该如何解决这个问题。 那么您有一个 .pkg 文件,其中包含您想要签名的第 3 方库?最简单的方法是要求图书馆的制造商这样做......但我对这个主题的了解非常有限。 你能澄清一下这个“最低目标”属性需要在哪里设置吗?它是应用程序项目还是安装程序项目的属性?我正在使用 Packages 来创建我的安装程序 mpkg,如果这很重要的话。 嗨,迈克,抱歉耽搁了。我加了一句来解释:-)

以上是关于无法签署 Mac 安装程序以在 Mac 应用商店之外分发的主要内容,如果未能解决你的问题,请参考以下文章

公证 java 应用程序以在 mac 应用程序商店上分发

签署 mac 应用程序失败

Xcode 11 无法创建 Mac 应用分发证书

无法使用 Xcode 成功签署 Mac Catalyst 应用程序

mac版PS安装了Coolorus 2.5.插件显示无法加载 , 未经正确签署怎么解决

验证 Mac 应用商店存档时出现错误“您的应用程序包必须安装到“/Applications””的原因是啥