为什么我的Swift代码在游乐场中工作,而不是在真正的可可应用程序中?

时间:2018-03-08 02:29:49

标签: swift macos cocoa kerberos nstask

我目前正在尝试在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"

有人知道我该怎么做才能让这段代码运行?

0 个答案:

没有答案