我有一些应用程序,我可以使用pkgbuild
和productbuild
创建.pkg
文件分发。 对于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只会在失败的流程中再增加一层。
我错过了什么?
我们可以通过使用选项来解决问题
--install-location
的pkgbuild
命令。
如果
--install-location
选项不使用,pkgbuild
在许多情况下使用/
作为默认安装位置。
在 macOS Catalina 中,只有某些文件夹是可写的。有关更多详细信息,请参阅此链接。
在我们的例子中,只有当我们指定了一个可写文件夹时,软件包安装才成功,例如
/usr/local
/opt
/Applications
作为默认安装位置。