Osheep

时光不回头,当下最重要。

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

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

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

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

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

打开沙盒权限

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

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

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

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

控制台打印document路径的结果

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

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

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

右键Finder

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

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

前往文件夹

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

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

系统文稿路径

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

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

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

加签名

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

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

控制台打印document路径的结果

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

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

沙盒路径

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

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

点赞