在沙盒激活的Mac OS X中写入文件夹

时间:2013-10-08 18:10:07

标签: xcode cocoa permissions directory sandbox

我使用Cocoa Desktop在Xcode中创建了一个小应用程序,该应用程序必须在当前用户的桌面Mac OS X中创建一个文件夹

当我在不使用应用程序的情况下运行应用程序时,在桌面上正确创建沙盒文件夹

如果我使用沙箱放置正确的文件进行读/写我无法在桌面上创建文件夹

有没有人知道如何解决这个问题,因为将应用程序发送到AppStore是必要的,以便使用沙盒?

2 个答案:

答案 0 :(得分:3)

您不应该只是在桌面上创建一个文件夹,无论您是否使用沙箱。而是使用NSOpenPanel配置选择文件夹,并要求您的用户提供要使用的文件夹。这与开放和沙盒应用程序兼容。

在沙盒世界中,一旦您要求用户输入文件夹,您就可以创建安全范围书签并将其保存在您的应用首选项中;在后续运行中,您可以使用该书签重新建立访问该文件夹的权限,而无需用户干预。例如。浏览器可能会询问一次访问文件夹以存储下载,然后将安全范围的书签保存到该文件夹​​。

HTH

答案 1 :(得分:1)

对于某些应用程序,最好使用某个目录作为默认目录(例如,Mail和Firefox使用Downloads作为默认目录)。我猜这是你的情况。但是,为了获得更好的用户体验(以及更高的App在AppStore中被接受的机会),请遵循最佳实践 - 例如避免直接桌面访问。而且,如果您阅读这些指南,大多数情况下您会自己找到答案: