2

いくつかのシェルコマンドを実行したいiPhone(またはiPad)用のアプリを構築しようとしています。動作させたいiPhoneはジェイルブレイクされていません。

system()コマンドはシェルコマンドの実行で動作しているように見えますが、出力と入力はもちろん問題です。NSTaskがこの種のものに使用される可能性があり、文書化されていませんが存在することを学びました。(Macも含めてNSTask.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 でシェル コマンドを実行するにはどうすればよいですか?

4

1 に答える 1

5

Any attempts to directly create a secondary process in iOS will be denied by the security policy unless you are running on a jailbroken phone.

于 2013-03-28T19:32:59.673 に答える