【发布时间】:2018-09-07 17:34:54
【问题描述】:
我正在尝试创建一个菜单栏应用程序来隐藏桌面图标,并希望主要是为了了解有关 Swift 的更多信息,但由于某种原因我无法让它工作。当我运行该程序并单击其中一个菜单项时,没有任何反应,并且我在控制台中收到以下警告:
killall: warning: kill -TERM 15175: Operation not permitted
其他命令有效,但我在“killall”上尝试的任何变体都会吐出类似上面的内容。目前我的代码如下所示:
@discardableResult
func killStuff(_ args: String...) -> Int32 {
let task = Process()
let pipe = Pipe()
task.launchPath = "/usr/bin/killall"
task.arguments = args
task.standardOutput = pipe
task.standardError = pipe
task.launch()
task.waitUntilExit()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
if let output = String(data: data, encoding: .utf8) {
print(output)
}
return task.terminationStatus
}
我已经尝试了很多关于here、here 和我在 Google 上找到的公认解决方案的变体,但我一直收到相同的“不允许操作”。当我在 Xcode 操场上运行相同的代码时,它工作得很好。
提前致谢!
【问题讨论】:
-
您是否尝试过使用
sudo? -
@kilojoules 是的,当我使用 killStuff 函数尝试它时,它具有相同的消息,然后当我在第一个链接中使用 shell 函数尝试它时,我看到它说“env: sudo: Operation不允许”
-
您不能使用沙盒应用程序这样做。
-
@ElTomato 哦,好的,谢谢。我从我的构建设置中删除了权利文件并且它有效。本着良好编程实践的精神,就这样删除它是否可以接受?
标签: swift xcode macos terminal