8

我正在寻找沙盒应用程序以符合 Mac App Store 的 3 月 1 日沙盒要求。我的应用程序包括一个内置的终端模拟器,它利用forkpty()调用在伪 tty 环境中启动进程。不幸的是,此调用在沙箱下失败,并显示错误“不允许操作”,尽管fork()调用工作正常。大概该forkpty()调用需要对 /dev/ 目录的读/写访问权限以创建伪 tty(根据手册页)。我尝试添加一个具有对 / 的读/写访问权限的临时沙盒权利 (com.apple.security.temporary-exception.files.absolute-path.read-write),现在我确实可以在文件系统,但forkpty()调用仍然失败并出现相同的错误。有谁知道我怎么可能得到forkpty()在沙箱下工作?

我的应用程序是一个带有内置终端模拟器和文件浏览器的编程文本编辑器,因此它本质上需要访问整个文件系统。除了forkpty()问题之外,这种临时权利似乎可以满足我的需要。但是,Apple 会接受具有如此松散定义的临时例外权利的应用程序吗?

提前谢谢各位。我真的希望我能启动并运行这个沙盒,所以我继续通过 App Store 分发我的应用程序。

4

1 回答 1

2

在沙盒应用程序中实现有用的终端仿真器是不可能的——即使在您为 PTY 设备添加权利之后,shell 最终还是与应用程序位于同一个沙盒中,从而阻止了它做很多事情。

于 2013-03-04T16:41:23.847 回答