我在寫一個任務來訪問OpenSSL二進制文件。如果我複製/粘貼不帶單引號的命令,那麼它在終端中完美工作。NSTask在命令中加入額外的單引號
我一直粘貼在命令中。下面是代碼/錯誤...
let keySizeValue = keySizes[keySizeChoice.indexOfSelectedItem]
task.launchPath = "/usr/bin/openssl"
task.arguments = ["req -new -newkey \(keySizeValue) -out ~/Desktop/Certs/MyNew.csr -keyout ~/Desktop/Certs/\(privateKeyText.stringValue).key -subj \"/C=US/ST=\(stateText.stringValue)/L=\(cityText.stringValue)/O=\(organizationText.stringValue)/OU=\(departmentText.stringValue)/CN=\(commonNameText.stringValue)\"", "\(privateKeyPassword)", "\(passwordVerify)"]
task.launch()
task.waitUntilExit()
我定義我的任務和keySizes陣列上方,但錯誤是 OpenSSL:已錯誤:req -new -newkey rsa:2048 -out ~/Desktop/Certs/MyNew.csr -keyout ~/Desktop/Certs/a.key -subj "/C=US/ST=a/L=a/O=a/OU=a/CN=a"' is an invalid command
。
這可能是因爲我使用不當的NSTask,但我覺得這看起來是正確的。任何人都得到了很好的建議:d
另外,請注意,NSTask並不會將主機目錄擴展到主目錄。 –