使用流程通过hdiutil创建DMG

时间:2019-04-20 19:25:43

标签: swift macos hdiutil

我正在玩Process(),并试图使其在我的桌面上创建DMG。

我正在尝试的代码是:

func terminal(_ args:String...) -> integer_t{
print(args)
let task = Process()
let dataPipe = Pipe()
let errPipe = Pipe()


task.launchPath = "/usr/bin/hdiutil"
task.arguments = args
task.standardOutput = dataPipe
task.standardError = errPipe

task.launch()

task.waitUntilExit()

let data = dataPipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: String.Encoding.utf8)

let dataErr = errPipe.fileHandleForReading.readDataToEndOfFile()
let errOp = String(data: dataErr, encoding: String.Encoding.utf8)
print (errOp)


return task.terminationStatus}

terminal("create", "size 50m" ,"fs HFS+" , "volname test", "Users/me/Desktop")

但当前它会引发错误

hdiutil: create: Only one image can be created at a time.\nUsage:\thdiutil create <sizespec> [options] <imagepath>\n\thdiutil create -help\n

我想我解析参数的方式有问题,但不确定是什么。

感谢您的帮助!

更新:

我认为也许将参数视为单独的调用?返回的错误的顶部显示为

["create", "size 50m", "fs HFS+", "/Users/me/Desktop/test.dmg"] hdiutil: create: Only one image can be created at a time.

我将-重新放入参数中,但现在它说 hdiutil: create: unknown option "-size 50M"。肯定与参数的格式有关,但我认为这似乎是正确的??

0 个答案:

没有答案