如何在 macOS 应用程序中安装软件包

How to install package in macOS Apps

我是 macOS 开发的新手,但我确实有 iOS 开发经验。 我正在为软件包 XYZ.pkg 开发安装程序应用程序 我想用我自己的 GUI 而不是默认的 macOS 安装程序来安装这个包。 该包在我的应用程序包中可用,当我尝试通过命令安装它时它崩溃了。

guard let pathOfResource = Bundle.main.path(forResource: "SomePackageName", ofType: ".pkg") else {
    return
}

self.loadingView.alphaValue = 1
self.loadingView.layer?.isHidden = false
self.activityIndicator.startAnimation(sender)
let argumentString = "-pkg " + pathOfResource
let argumentString1 = "-target /"
let path = "/usr/sbin/installer "
let arguments = [argumentString,argumentString1]

let task = Process.launchedProcess(launchPath: path, arguments: arguments )
task.waitUntilExit()
self.activityIndicator.stopAnimation(sender)
self.loadingView.alphaValue = 0

你的问题是路径后面的space。

let path = "/usr/sbin/installer"

进程在给定的启动路径找不到二进制文件时抛出异常。

包的路径中有一个space,installer命令将其解释为包名的结尾,然后它发现后面看起来像废话。如果您将资源路径括在引号中,那应该有效:

let argumentString = "-pkg \"\(pathOfResource)\""