1

所以我有一个运行良好的应用程序,但是当沙盒发布时,我想我不妨开始遵守。在我的应用程序中,用户可以调用 python,而我一直在做的是 stdout 和 stderr 的简单重定向

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

然后通过 a 调用 Python

status = PyRun_SimpleString(utfString);

从那里我可以简单地回读结果/错误并继续生活。但是对于沙箱,这是不允许的,因为 /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 进行读写操作......

任何帮助将不胜感激。

4

1 回答 1

0

答案是路径不正确,使用沙箱,重定向很好,但你需要对 NSDocumentsDirectory 中的文件执行此操作......所以,如果你开始认为 iOS 一样,你很好,没有魔法,回想一下需要在您的应用程序的文档目录中进行写入,并且 stdout/stderr 的重定向是写入...

于 2012-04-19T15:25:04.027 回答