在沙盒应用中阅读桌面图片

时间:2013-11-22 03:34:56

标签: cocoa sandbox

我在我的沙盒应用程序中遇到了与阅读桌面图片相关的崩溃,我无法在我的Mac上重现这些图片,但我在App Store遭到拒绝,因为它崩溃,其他用户报告崩溃。

正在从“/ Library / Desktop Pictures”或使用NSWorkspace的desktopImageURLForScreen方法读取桌面图片。这些在我的Mac上运行得很好,但我有点困惑,因为我不知道如何在没有在NSOpenPanel中手动选择目录的情况下访问“/ Library / Desktop Pictures”。至于desktopImageURLForScreen,我不确定这是否是沙盒安全的,具体取决于文件在该用户屏幕上的存储位置。

任何人都可以验证这两种获取桌面图片的方法在所有情况下都是安全的,还是我需要请求用户在NSOpenPanel中选择存储桌面图片的目录(甚至来自desktopImageURLForScreen)?

1 个答案:

答案 0 :(得分:0)

首先,让沙箱拒绝访问URL不会导致崩溃 - 方法将返回错误指示。因此,如果您的应用程序崩溃,则可能是因为您无法访问这些网址,或者因为您没有正确测试失败。

如果您希望安静地访问桌面映像,则可以指定com.apple.security.assets.pictures.read-only权利 - 这将使您的应用可以访问常见的映像位置。 保证您的应用可以访问桌面图片的网址,只是增加了概率。所以你仍然必须测试成功或失败。

如果您的程序需要访问权限,并且如果无提示访问失败,则可以建立标准文件对话框;适当定制的提示,按钮等;请求用户授予访问URL的权限。

HTH