什么非用户目录可以沙盒化mac app读/写?

时间:2012-06-14 14:10:44

标签: macos cocoa sandbox mac-app-store

我有一个应用程序需要在运行的时间之间保存数据。我一直在使用NSUserDefaults,但我有一些用户向我指出:这导致不同的用户最终得到不同的数据,这不是应用程序的工作方式。无论哪个用户正在运行它,它都需要一个可以读/写的目录。

因此,我需要一个沙盒mac应用程序可以读写的非用户特定目录。

谢谢!

(哦,如果这个目录在我的应用程序更新之间是持久的,那也是有用的!)

快速勉强相关的问题:有没有办法在Mac App Store批准的应用程序中拥有用户可修改的资源文件?我不希望它可以通过我的应用程序修改;我只是想确保修改它的用户不会导致系统因为不匹配代码签名哈希而杀死应用程序。

1 个答案:

答案 0 :(得分:1)

我认为您不能在App Sandbox容器之外的目录中读取和写入,而不会提示用户使用Powerbox选择它并保存安全范围的书签(请参阅App Sandbox Container Directory) 。从我最近收集的有关App评论的内容来看,如果您选择让用户选择目录,您甚至无法在打开的对话框中指定默认值。

关于第二个问题,据我所知,代码签名的任何验证都留给了开发人员。因此,虽然MAS应用程序有一个_CodeSignature文件夹,其中包含一个包含资源所有哈希值的plist,但在我的实验中,更改它们对应用程序启动没有任何影响。