无法签署 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 应用商店之外分发的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Xcode 成功签署 Mac Catalyst 应用程序