2012-04-18 9 views
1

私はうまく働いていたアプリを持っていましたが、サンドボックスが発表されたときに私は自分自身に合っていると考えました。私のアプリでは、ユーザーは、Pythonを呼び出し、私がやっていたことはstdoutとstderrfreopenを制限するサンドボックスMac OS X

freopen("error.log","w",stderr); 

の簡単なリダイレクトした後、そこから

status = PyRun_SimpleString(utfString); 

経由でのPythonを呼び出すことができます私はできシンプルなリードバック結果/エラーと人生を続ける。しかし、サンドボックスではこれは/ dev/stdoutと/ dev/stderrが私のアプリの外にあるため許可されていません。

com.apple.security.temporary-exception.files.absolute-path.read-write => Array 
{ 
    Item 0 => /dev/stdout 
    Item 1 => /dev/stderr 
} 

しかし、それは

は、この問題を回避する方法を誰もが知っている...どちらかの助けにはならなかった:私は、資格の一時ファイルの例外に入れてみましたか?このコードはうまくいきました。私はサンドボックスを理解していますが、私はPythonインターフェイスをシンプルに保ちたいと思います。結局のところ、誰もがstdout/stderrに書き込んで読むことができます....

助けていただければ幸いです。

答えて

0

答えはパスが間違っていたため、サンドボックスではリダイレクトは問題ありませんでしたが、NSDocumentsDirectory内のファイルに行う必要があります...あなたがiOSを考え始めると、マジック、ちょうどあなたのアプリのドキュメントディレクトリで行われる必要がありますリコールとstdout/stderrのリダイレクトは書き込みです...