productbuild:如何将第三方产品归档文件添加到安装程序?

6

我需要制作Mac OS应用程序安装程序,该程序还会安装其他第三方软件包。

尝试通过productbuild --synthesize添加时,它提示“ThirdPartyPackage.pkg是产品存档,而不是组件包”。

那么,我应该如何正确地将第三方产品安装程序插入到我的安装程序中?


你能否将产品包含到自己的安装程序中? - voytek
2
这是不可能的,因为不能将最终产品包含到其他产品包中。因此,我最终得出了两个解决方案:1)解压安装程序包并在我的安装程序中安装较低级别的软件包;2)从我的应用程序中静默运行整个安装程序。 - Nickolay Olshevsky
2个回答

2
您可以使用以下方法将“产品归档”拆分为其组成包:
pkgutil --expand your_product_archive.pkg some_folder

这将创建 some_folder 目录,并使用产品存档的内容填充它。

是的,但实际上问题在于产品包无法包含到其他产品包中。请参见我在问题上的评论。 - Nickolay Olshevsky
很确定这个答案的意思是,一旦产品归档被拆分成组件包,你就可以使用 productbuild 将这些包合并在一起。当然,扩展可能会显示出分发和脚本方面的复杂性,你需要在安装程序中考虑到这些问题。 - user2793784

0
如果第三方存档文件可靠且可以下载,那么您可以编写一个安装前或安装后脚本使用curl将其获取(可能是在/tmp目录下),然后使用installer进行安装。 curl的错误处理有些棘手,因为它往往会对许多错误报告没有错误:如404未找到、域名无法解析等。您可以假设它已经工作正常,并指望installer在您尝试下载时没有实际软件包时报错。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接