美文网首页Mac开发云集程序员Mac优雅使用指南
MAC开发--关于MAC获取沙盒路径的问题

MAC开发--关于MAC获取沙盒路径的问题

作者: 背靠背的微笑 | 来源:发表于2017-03-29 20:50 被阅读1522次

    做过iOS开发的亲,一定对沙盒不陌生吧?这次在MAC开发中,以为很快就能把文件写到沙盒里,想不到遇到了一个坑,耗费了半天的时间,在此分享给大家,希望可以让大家快速绕过这个坑。

    1、首先,MAC开发使用沙盒需要去打开沙盒的权限。

    如下图所示,将OFF切换到ON,打开沙盒权限,并勾选项目中需要的功能。

    打开沙盒权限

    2、和iOS的写法一样获取沙盒路径,我就以document文件夹路径为例

    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

    接下来我们看一下控制台打印的结果:

    控制台打印document路径的结果

    我们前往文件夹,看看这个路径映射到哪里:

    ①右键Finder,点击前往文件夹

    右键Finder

    ②把控制台上的路径copy到输入框中,点击前往

    前往文件夹

    ③这时,我们可以看到,控制台打印的路径是映射到系统的文稿目录下,显示这不是我们想要的路径,我们希望映射到当前应用程序所对应的目录下。那么问题出在哪里哪?

    系统文稿路径

    3、MAC获取沙盒权限需要签名状态

    ①进到配置中,发现我们的应用程序是没有签名的,所以我们加上签名,这里就不细说了。

    加签名

    ②加上签名后,我们再来看下结果:

    控制台打印document路径的结果

    ③结果看着好像是对的,那我们还是前往文件夹看下:

    沙盒路径

    ④这就是我们需要的沙盒路径,搞定!

    后序:MAC应用程序沙盒路径不管是xcode的程序,还是网上下载的应用程序,如果打开了沙盒权限,都是放在同一个目录下;而iOS是xcode的程序放在xcode的一个缓存目录下,真机调试放在手机相对应程序的目录下,这是区别。

    ####2017.9.4 补充:

    NSUserDefaults写入的数据存储在哪里?

    沙盒的Library文件夹下的Preferences文件夹下的,以应用程序的bundle id为名的plist文件,里面记录了所有用NSUserDefaults写入的数据存储。

    相关文章

      网友评论

      • Solin_solin:希望继续写下去:blush:
        背靠背的微笑:@Solin_solin 当然:smile:
      • nzbypl:楼主问下,我的应用是有搜索联网设备的,同时开了沙盒,然后加了证书,搜索不到设备了。
        nzbypl:@背靠背的微笑 我这边有个搜索局域网设备的操作,开了沙盒权限和证书,就搜索不到设备了。
        背靠背的微笑:沙盒的网络权限打开了吗?

      本文标题:MAC开发--关于MAC获取沙盒路径的问题

      本文链接:https://www.haomeiwen.com/subject/uhgewttx.html