Я хочу создать зашифрованный .dmg в macOS с помощью swift
Я не нашел реализации для hdiutil, поэтому я вынужден использовать для этого терминальные команды.
К сожалениюЯ не знаю, как работать с трубами (которые должны использоваться в отношении документации яблок)
Команда, которую я хочу вызвать, следующая: printf 'password' | hdiutil create -encryption AES-256 -volname backupname -stdinpass -size 1GB backupname.dmg
Код, я 'я попробовал следующее (ничего не работает):
func shell(_ args: String...) -> Int32 {
let task = Process()
let inputpipe = Pipe()
task.standardInput = inputpipe
//1. try: inputpipe.fileHandleForReading.write("password".data(using: .utf8)!)
//2. try: inputpipe.fileHandleForWriting.write("password".data(using: .utf8)!)
/*3. try: inputpipe.fileHandleForWriting.writeabilityHandler = {
pipe in
let inputString = "password"
let data = inputString.data(using: .utf8)!
pipe.write(data)
}*/
task.launchPath = "/usr/bin/env"
task.arguments = args
task.launch()
task.waitUntilExit()
return task.terminationStatus
}
print(shell("hdiutil", "create", "-encryption", "AES-256", "-volname", "backupname", "-stdinpass", "-size", "1MB", "~/Documents/backupname.dmg"))
Как правильно указать пароль, используя Process()