我目前正在尝试在macOS状态栏应用程序中实现自动化。
现在我尝试在进程中进行Kerberos登录(以前称为NSTask)。在我的操场上,代码成功创建了令牌。但是,当我将代码移动到真正的应用程序时,它失败了。我收到以下错误消息:" kinit:解析凭据缓存:malloc:内存不足"
这是我的代码:
import Cocoa
// user credentials
let username = "user@example.com"
let password = "password"
// previous called NSTask
let process = Process()
// set process parameters
process.launchPath = "/bin/sh"
process.arguments = ["-c", "/bin/echo \(password) | /usr/bin/kinit --password-file=STDIN \(username)"]
// create a pipe to lauch process
let pipe = Pipe()
process.standardOutput = pipe
// launch process
process.launch()
// get outcome
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue)
print(output!)
我认为这是Credential缓存的问题。当我输入命令" klist -A" 时,我收到以下错误:" klist:krb5_cc_cache_get_first:无法打开kcm init"
有人知道我该怎么做才能让这段代码运行?