具有沙盒和权利的mac app主捆绑资源权限

时间:2013-01-01 10:02:32

标签: macos sandbox

  

可能重复:
  Mac OS X: Where should I store save games for a game delivered as a bundle?

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

EDIT 我尝试了〜/ Library / Application Support /您的游戏名称/并且它没有显示权限错误但无法保存游戏数据。 user / my_name下没有库,但在unser / shared下没有。我需要添加任何权利吗?

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

1 个答案:

答案 0 :(得分:4)

在应用程序沙盒中,您的应用程序有一个容器文件夹,它可以在任何地方写入,但我建议只写入Data / Documents文件夹,可以使用以下代码获取:

NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

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

$ chflags nohidden ~/Library

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