沙盒的Apple Mail插件包是否已装箱?

时间:2013-09-18 03:09:02

标签: macos email plugins bundle sandbox

我正在编写一些在Apple Mail中运行的代码,通过用户构建的捆绑包的已知方法。

我发现在Mail.app中运行的代码似乎无法访问许多文件系统位置。例如,尝试进行简单的fopen调用以访问当前用户目录中的文件,或者甚至尝试使用所有文件读取 / tmp 中的文件 - 访问权限(chmod 777)将失败并且ERRNO设置为1(不允许操作)。

但是,通过NSTemporaryDirectory提供的路径,插件包中的文件系统I / O成功。

我对Apple开发世界还不熟悉,所以我的问题是,如果这些限制是由操作系统针对某种捆绑软件强制执行的,Apple Mail程序或者我只是在做错误的事情,例如可能混合进程和文件系统权限。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我不知道邮件插件,但沙盒应用程序(如邮件)已完全包含,无法访问容器外的文件,用户无需从对话框中选择文件,由其中一个处理Apple框架。例外情况是if是应用程序指定的权利的一部分,例如能够访问用户的音乐或照片目录。

根据Apple的文档: -

Access to files

如果是阻止插件的沙箱,您可能会在控制台应用中看到来自守护程序沙盒的条目。

我希望NSTemporaryDirectory能够正常运行,因为它可以与Sandboxed应用程序配合使用,并提供有效的位置。

您可能需要阅读Apple Sandbox Design Guide