我需要我的应用程序在Sandbox中执行命令。这是我到目前为止的代码:
// Set up the task
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
NSArray *args = [NSArray arrayWithObjects:@"-l",
@"-c",
@"rm -rf .Trash/*",
nil];
[task setArguments: args];
// Set the output pipe.
NSPipe *outPipe = [[NSPipe alloc] init];
[task setStandardOutput:outPipe];
[task launch];
我得到的日志输出为:
/ bin / bash:/ etc / profile:不允许操作
有什么想法吗?
答案 0 :(得分:3)
沙盒中不允许使用Sudo命令。
答案 1 :(得分:2)
如果你只是想清空垃圾,而不是试图通过蛮力来做,只需让Finder处理它,例如使用AppleScript:
tell application "Finder"
empty trash
end tell
您可以直接从Objective-C运行AppleScript命令,如下所示:
NSAppleScript *command = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to empty trash"];
[command executeAndReturnError:nil];