macOS Catalina:尝试将内容安装到系统卷

macOS Catalina: trying to install content to the system volume

我有一些应用程序,我使用 pkgbuildproductbuild 创建了 .pkg 个文件。对于 macOS Catalina,这不再有效。安装程序抱怨我正在尝试将内容安装到系统卷。

我三周前发帖认为错误与捆绑 Java 运行时有关。原来和Java.

没有关系

为了测试它,我有一个名为 Hello 的尽可能小的项目,它有一个主 window 和一个可以单击的按钮。在 XCode 中,我执行产品 -> 存档,然后分发应用程序和复制应用程序。这将创建一个目录 Hello 2019-12-18 15-01-07,内容为 Hello.app。该应用程序运行良好。然后我 pkgbuild --root *7 Hello.pkg 这会创建 Hello.pkg

当我在查找器中双击 Hello.pkg 时,安装程​​序会显示介绍、目标 Select(仅提供一个选项)和安装类型("Standard Install on Macintosh HD" ),然后询问我的密码。然后它说,"This package is incompatible with this version of macOS. The package is trying to install content to the system volume. Contact the software manufacturer for assistance."

我代签公证也没关系。 Productbuild 只是在失败的过程中增加了一层。

我错过了什么?

我们可以使用选项

解决问题
--install-location

pkgbuild 命令。

如果

--install-location

选项未使用,pkgbuild 在许多情况下使用 / 作为默认安装位置。

在 macOS Catalina 中,只有某些文件夹是可写的。请参阅此 link 了解更多详情。

在我们的例子中,只有当我们指定了一个可写文件夹时,包安装才会成功,例如

/usr/local
/opt
/Applications

作为默认安装位置。