-1

我一直在为 MacOSX 开发一个 Eclipse RCP 应用程序,它使用“安装程序”(.pkg)来安装应用程序。

我在以下两个步骤中执行了公证过程(因为安装程序使用“有效负载”):

  1. 协同设计和公证的有效负载(应用程序文件、可执行文件、二进制文件等)
  2. Codesigne & notarize 安装程序文件 ([application_installer_file].pkg)

第 1 步工作正常,运行后我收到了来自苹果的“成功”公证电子邮件:

sudo xcrun altool --notarize-app --primary-bundle-id "" ....

我什至打开并运行了应用程序以确认它可以正常工作并且一切都按预期工作。

因此,我继续使用WhiteBox 'Packages'软件为有效负载构建“安装程序”,该软件也成功并生成了一个“.pkg”文件。

然后我使用以下命令签署了安装程序产品:

productsign --sign "Developer ID Installer: Org Name(#######)" [installer_file.pkg] [productsigned_installer_file.pkg] 

我使用以下方法验证了签名:

sudo pkgutil --check-signature [productsigned_installer_file.pkg] 

这也很好,并确认安装程序文件已成功签名。因此,到此为止,“有效负载”都经过了代码签名和公证,并且安装程序已成功进行了产品签名

但是,当我尝试使用以下方法对 productsigned 安装程序文件进行公证时:

sudo xcrun altool --notarize-app --primary-bundle-id "" ... [productsigned_installer_file.pkg] 

由于路径下有效负载中的可执行文件存在问题,安装程序的公证过程失败:

[productsigned_installer_file.pkg]/com.product.pkg Contents/Payload/Applications/[app_name]/[app_name].app/Contents/MacOS/[executable_file]

公证错误消息是“二进制文件的签名无效”

现在,当我已经从 Apple 在同一文件上获得“成功公证”电子邮件时,我不明白“二进制”如何无效(表明二进制实际上是“有效的”,因为我没有更改有效负载)。

问题是,即使已成功公证,在安装程序包中用作“有效负载”的公证应用程序是否会失败?

4

0 回答 0