2

我正在尝试为 iPhone(或 iPad,就此而言)构建一个应用程序,我想在其中运行一些 shell 命令。我希望它工作的 iPhone没有越狱。

system()命令似乎在执行 shell 命令时起作用,但输出和输入当然仍然是一个问题。我了解到它NSTask可以用于这类事情并且它存在,尽管没有记录。(包括 MacNSTask.h似乎可以完美运行)

现在的问题是执行此代码时:

NSTask *task;
task=[[NSTask alloc] init];
task.launchPath=@"/usr/bin/ls";
task.arguments=[NSArray array];
NSPipe *pipe=[NSPipe pipe];
task.standardOutput=pipe;
task.standardError=pipe;
NSFileHandle *output=pipe.fileHandleForReading;
pipe=[NSPipe pipe];
task.standardInput=pipe;
[task launch];

对于pipe未来的 I/O,它会生成错误读数:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'launch path not accessible'

我已经为 unixbin目录尝试了很多可能的路径,但要么我找不到它,要么我的应用程序没有列出文件的权限。-.-

如何在 iPhone 上执行 shell 命令同时控制该命令的输入和输出?

4

1 回答 1

5

除非您在越狱手机上运行,​​否则任何在 iOS 中直接创建辅助进程的尝试都将被安全策略拒绝。

于 2013-03-28T19:32:59.673 回答