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

Jer*_*gin 7 pkgbuild macos-catalina

我有一些应用程序作为.pkg使用pkgbuild和创建的文件分发productbuild。使用 macOS Catalina,这不再起作用。安装程序抱怨我正在尝试将内容安装到系统卷。

三周前我发帖认为该错误与捆绑 Java 运行时有关。事实证明它与Java无关。

为了测试它,我有一个最小的名为 Hello 的项目,它有一个主窗口和一个单击按钮。在 XCode 中,我执行 Product -> Archive,然后 Distribute App 和 Copy App。这将创建一个Hello 2019-12-18 15-01-07包含内容的目录Hello.app。该应用程序运行良好。然后我 pkgbuild --root *7 Hello.pkg 创建了Hello.pkg.

当我在查找器中双击 Hello.pkg 时,安装程​​序会向我显示介绍、目标选择(仅提供一个选项)和安装类型(“Macintosh HD 上的标准安装”)屏幕,然后询问我的密码。然后它会说:“此软件包与此版本的 macOS 不兼容。该软件包正在尝试将内容安装到系统卷。请联系软件制造商寻求帮助。”

如果我共同设计和公证没有区别。Productbuild 只为失败的过程增加了一层。

我错过了什么?

小智 8

我们可以通过使用选项来解决这个问题

--install-location
Run Code Online (Sandbox Code Playgroud)

的的pkgbuild命令。

如果

--install-location
Run Code Online (Sandbox Code Playgroud)

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

在 macOS Catalina 中,只有某些文件夹是可写的。有关更多详细信息,请参阅此链接

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

/usr/local
/opt
/Applications
Run Code Online (Sandbox Code Playgroud)

作为默认安装位置。