问题标签 [productbuild]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
54 浏览

macos - 如何使用带有 productbuild 命令的插件来创建包

我正在尝试在应用程序包中使用安装程序插件。

“productbuild --component [应用路径] [安装路径] --plugin [插件路径] [包路径]”

在安装程序 pkg 中找不到我的插件。

我有一个平面 pkg 文件,如何指定 InstallerSections.plist 或在此包中添加 InstallerSections.plist。

还尝试使用“ pkgutil --expand ”扩展pkg文件并在其中添加插件包并添加InstallerSections.plist文件

并再次使用pkgutil --flatten使其扁平 pkg 但在运行安装程序时仍未找到插件

0 投票
0 回答
36 浏览

cmake - CPACK_PRODUCTBUILD_RESOURCES_DIR pkg 中没有文件

我想在我的 macos 安装程序中添加其他文件,我想在安装期间使用安装程序中的脚本将这些文件复制到正确的位置。

我尝试使用以下方法添加文件:

和脚本:

CPack 在我的构建树“_CPack_Packages”中创建了一个文件夹,我可以在其中看到文件与许可证自述文件和欢迎文件一起添加。但是在最终的 pkg 中,我的文件没有添加。

我在这里做错了什么?

0 投票
0 回答
84 浏览

macos - Pkgbuild 和 Productbuild PKG 总是在 ROOT 下安装。为什么?

请考虑以下 sh 片段 - 它生成的 PAK 文件始终安装在 /Applications 中的 ROOT 下并且无法在 Mojave 上启动,除非

发出...

这个建议并没有为我解决它......)

提前致谢!

0 投票
0 回答
56 浏览

code-signing-certificate - 为什么产品构建找不到我的 Developer ID 安装程序证书

我正在尝试使用 productbuild 构建我的 MacOS 应用程序的可分发版本。该过程过去对我有用,但我将文件传输到另一台计算机,现在我无法完成该过程。

我发出命令

productbuild --component MyApp.app /Applications --sign "Developer ID Installer" InstallMyApp.pkg

我得到了错误

Cannot write product to "InstallMyApp.pkg". (Could not find appropriate signing identity for “Developer ID Installer”.)

Developer ID Installer: Gerald Agin (7HT9GPV6X3)我的钥匙串应用程序清楚地显示了一个标有未来 15 个月到期日期的证书。

我错过了什么?

0 投票
0 回答
15 浏览

macos - 由于打包有效负载中的“可执行文件”,使用“开发人员 ID 安装程序”进行“Eclipse RCP 应用程序”的公证过程失败

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 投票
0 回答
12 浏览

xcode - 如何使用 Xcode 创建 PKG 文件?

我有一个使用 Xcode 13 构建的应用程序,我需要将此应用程序打包到 PKG 文件中,如下所示:

苹果 PKG 图标

执行此操作的预期方法是什么?

是否有可以添加到将生成 PKG 文件的 Xcode 项目的目标?如果是这样,那个目标叫什么?

我了解 productbuild 用于从命令行将应用程序打包到 PKG 中,您可以在 Xcode 项目之外运行它。假设不存在构建 PKG 的目标,这是构建 PKG 文件的预期方式吗?

显然我可以编写所有这一切,但如果我错过了一些明显的东西,我不想让这变得比它需要的更复杂。

0 投票
0 回答
18 浏览

macos - MacOS 应用程序的安装程序。有没有办法为 MacOS 独立安装或更新同一应用程序的不同模块?

我是 MacOS 和生成安装程序的新手,所以在某些时候我可能是不正确的。

我有一个适用于 MacOS 的应用程序。我目前使用 pkgbuild 打包并签名它和一些库(以及预安装、安装后脚本)。结果是两个包,然后使用 productbuild 将它们打包到一个产品存档中。产品档案也已签名。此外,在安装后脚本中,以这种方式添加信任证书:

该库存储在 /Library/MyApp/Versions/1.2.3/ 中,由几个相对独立的模块组成。大多数用户只需要其中的几个。

所以问题是:

  1. 是否可以制作一个允许用户选择安装哪些模块的安装程序?
  2. 如果已经安装了应用程序,是否可以根据用户的需要更新或下载和安装各个模块?在这种情况下,应用签名或证书或其他 macOS 安全策略会不会出现问题?