mac app 主包资源权限与沙箱和权利

OMG*_*POP 1 macos sandbox

可能的重复:
Mac OS X:我应该在哪里存储作为捆绑交付的游戏的保存游戏?

我正在将我的 iOS 游戏迁移到 Mac。我用来存放高分的文件保存在xxx.app/Contents/Resources下。但是,当我启用沙箱和授权时,目录变得不可写。我也尝试过 xxx.app 和 xxx.app/Contents 也没有运气。那么我应该使用哪个目录或我应该添加哪个权利?

编辑我试过 ~/Library/Application Support/Your Game Name/ 并且它没有显示权限错误但无法保存游戏数据。在 user/my_name 下没有 Library,但在 unser/shared 下有一个。我需要添加任何权利吗?

编辑 2:请不要关闭这个问题。先前问题的答案对我不起作用。相反,这个问题的标记答案是正确的。

tro*_*foe 5

在应用程序沙箱下,您的应用程序有一个容器文件夹,它几乎可以在任何地方写入,但是我建议只写入数据/文档文件夹,可以使用以下代码获取:

NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

这将为您提供位于~/Library/Containers/com.yourdomain.yourapp/Data/Documents. 请注意,该~/Library文件夹隐藏在 Lion/Mountain Lion 下,因此需要在命令行上使用它取消隐藏:

$ chflags nohidden ~/Library
Run Code Online (Sandbox Code Playgroud)

(只有您,开发人员,需要取消隐藏该文件夹,以便您可以从 Finder 中查看您的应用程序编写的内容;您的用户无需取消隐藏它即可使用您的应用程序)。