我正在尝试创建一个菜单栏应用程序,以隐藏桌面图标以及希望进行其他各种操作,主要是为了更多地了解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 }
我已经和Google上找到的可接受的解决方案进行了多种尝试,但是我不断收到相同的“不允许操作”的信息。当我在Xcode游乐场中运行相同的代码时,它工作正常。
提前致谢!
Mac应用程序(如iOS应用程序)在默认情况下处于沙箱状态,这意味着它们对系统资源的访问非常有限。例如,仅允许它们读取和写入少量沙盒目录,并且usr/bin绝对不允许读取/写入/执行,也不允许您启动进程。
usr/bin
我记得,通过删除您的权利文件,您正在构建未沙盒化的应用程序。您可以从Xcode运行它,但是需要更改系统设置才能从查找程序运行它。