2012-04-18 60 views
1

所以我有一個很好運行的應用程序,但是當沙盒被宣佈時,我想我可能會開始遵守。在我的應用程序,用戶可以調用Python和我一直在做的是輸出和錯誤限制freopen的沙箱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正在寫入...