我有一些应用程序,它们以使用.pkg
和pkgbuild
创建的productbuild
文件的形式分发。使用macOS Catalina,这将不再起作用。安装程序抱怨我正在尝试将内容安装到系统卷中。
我三周前发布了一篇文章,认为该错误与捆绑Java运行时有关。事实证明,它与Java无关。
要测试它,我有一个名为Hello的最小项目,它带有一个主窗口和一个单击按钮。在XCode中,我执行产品->存档,然后分发应用程序,然后复制应用程序。这将创建包含内容Hello 2019-12-18 15-01-07
的目录Hello.app
。该应用程序运行正常。然后我
pkgbuild --root *7 Hello.pkg
这将创建Hello.pkg
。
当我在查找器中双击Hello.pkg时,安装程序将向我显示“简介”,“目标选择”(仅提供一个选项)和安装类型(“ Macintosh HD上的标准安装”)屏幕。我的密码。然后它说:“此软件包与该版本的macOS不兼容。该软件包正在尝试将内容安装到系统卷。请与软件制造商联系以寻求帮助。”
如果我进行代码签名和公证,这没有什么区别。 Productbuild仅在失败的过程中增加了一层。
我想念什么?
答案 0 :(得分:5)
我们可以通过使用选项解决问题
--install-location
pkgbuild
命令的。
如果
--install-location
未使用该选项,在许多情况下,pkgbuild
使用/
作为默认安装位置。
在macOS Catalina中,仅某些文件夹可写。有关更多详细信息,请参考此link。
在我们的案例中,仅当我们指定了其中一个可写文件夹(例如
)时,软件包安装才成功/usr/local
/opt
/Applications
作为默认安装位置。