iOS沙盒机制和文件(一)

来源:互联网 发布:韩国进出口数据 编辑:程序博客网 时间:2024/06/16 08:58

1. iOS沙盒机制

概念:每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录。所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。

  • 每个应用程序的活动范围都限定在自己的沙盒里
  • 不能随意跨越自己的沙盒去访问别的应用程序沙盒中的内容(iOS8已经部分开放访问extension)
  • 在访问别人沙盒内的数据时需要访问权限。

注意:APP之间不能相互通,唯独可以通过URL Scheme可以通信

2. 打开模拟器沙盒目录

可以设置显示隐藏文件,然后在Finder下直接打开。设置查看隐藏文件的方法如下:打开终端,输入命名

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

直接在Finder->前往->前往文件夹(或者点击桌面空白处command+shift+g),
输入上面的内容即可。记住将XXXXX换成你的电脑用户名。
/Users/XXXXX/Library/Developer/CoreSimulator/。这里面就是模拟器的各个程序的沙盒目录了。
应用沙盒路径

3. 目录结构

每个APP的沙盒下面都有相似目录结构,如图(苹果官方文档)
默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件
目录结构

4. 目录说明

目录 介绍 AppName.app 应用的buddle,包括app和它内部的资源。你不能往这个目录中写数据,为了防止你这样干,在安装的时候,该目录被重签名 Documents/ 用来存储用户建立或浏览生成的数据, 这些数据都是你愿意暴露给用户的,itunes会自动备份这里面的文件 Library/ 存放不是用户数据,是你不希望暴露给用户的;ios通常建立 Application Support 和Caches 这2个子目录,你也可以建立其他子目录,除Caches中内容其他会被itunes备份 Library/Caches 存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除 Library/Preferences 保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。*iTunes会自动备份该文件目录下的内容。比如说:是否允许访问图片,是否允许访问地理位置…… tmp/ 存放临时文件,在app退出后,此目录下文件会被清除,不会被itunes备份

iTunes在与iPhone同步时,备份所有的Documents和Library/Preferences文件。
iPhone在重启时,会丢弃所有的tmp文件。

链接:iOS高级

原创粉丝点击