3

我正在制作一个 Mac OS X 应用程序(沙盒),它从 /etc/myfolder 中已安装的配置文件中读取。当我尝试使用 NSFileHandle 读取文件时,我在控制台中收到以下错误:

sandboxd: ([3251]) MyApp(3251) deny file-read-data /private/etc/myfolder/myconfig.conf

我在我的权利文件中设置了以下权利,但我仍然被沙盒拒绝。

  • com.apple.security.temporary-exception.files.home-relative-path.read-only
  • com.apple.security.temporary-exception.files.absolute-path.read-only
  • com.apple.security.files.user-selected.read-only

编辑:看来我误用了

com.apple.security.temporary-exception.files.absolute-path.read-only.

我将其设置为布尔值。我的印象是,将其设置为 YES 将启用使用绝对路径读取所有文件。上述权利的值必须是允许的绝对路径。

4

1 回答 1

6

您需要使用com.apple.security.temporary-exception.files.absolute-path.read-only绝对路径/private/etc/myfolder/myconfig.conf- (10.8.3) 沙箱似乎不接受/etc/myfolder/myconfig.conf包含符号链接的路径。

注意:如果您正在为 Mac App Store 进行沙盒处理,您可能会面临一项几乎不可能完成的任务,即让您的应用程序被接受并获得读取 /etc 中文件的临时权限。最好将此文件存储在应用程序的容器中 - 在 MAS 中,每个应用程序都是一个被鲨鱼出没的水域包围的岛屿。

于 2013-04-09T08:43:46.280 回答