如何在mac的cocoa应用程序中允许用户的Home文件夹的权限

时间:2015-07-27 05:14:16

标签: objective-c cocoa xcode6 osx-yosemite appstore-sandbox

我有一个mac应用程序,我在其中删除用户主目录中的一些数据。

我的应用被拒绝说出以下原因。

The app only finds files in the ~/Downloads folder. It would be appropriate to have the user grant access to the Home folder.

所以我使用NSOpenPanel询问用户的访问权限,但我不知道如何访问用户的隐藏文件夹。

修改 Image

我已成功为我的应用启用了沙盒,但现在在允许按钮上,我该怎么办?

请指导我......

任何帮助都将受到高度赞赏。

提前致谢...

1 个答案:

答案 0 :(得分:2)

我花了一些时间研究这个问题,我可以说,如果你想要一个简单的解决方案来访问应用程序沙箱之外的文件,那就不可能了。

即使你愿意采用更强硬,更技术性的解决方案,它仍然可能无法实现。

您应该在Apple的App Sandbox Design Guide entitled "Accessing User Data"中查看此部分,特别是这一点:

  

如果您的应用需要访问用户的主目录才能访问   功能,让Apple知道你使用Apple bug的需求   报告系统。此外,请务必遵循指导   关于iTunes Connect网站上提供的权利。

下一段对其他应用的偏好说了同样的话。由于您试图操纵 - 或删除 - 其他应用程序的文件,您将不得不向Apple请求许可和/或指导来执行此操作。

如果这是我的问题,我可能尝试的唯一解决方法是提出可能涉及Security-Scoped Bookmarks and Persistent Resource Access,但正如您从链接文档中看到的那样,设置并非易事。

总结:如果您希望自己的应用保持沙盒,则可能需要重新考虑您要完成的工作。

可在此related question中找到更多信息。