02_iOS 沙盒及各个目录详解

摘要:
出于安全原因,iosAPP与系统文件交互的权限仅限于应用程序的沙盒目录。安装新应用程序时,安装程序会在沙盒目录中创建许多容器,每个容器目录都有特定的角色。运行时,应用程序可以申请其他容器目录,如icloud。每个目录的详细信息:APPName.app是应用程序包,包括应用程序和所有资源。

处于安全考虑,一个iosAPP对系统文件的交互权限被限制在app的沙盒目录下。

在安装一个新的app的时候,安装程序会在沙盒目录下创建许多的容器,每个容器目录都有特定的角色。

bundle容器目录:保存应用程序的包(主bundle的资源等)

数据容器目录:就是我们平时开发中用到的Documents,library temp。运行的时候app可以额外的申请容器目录,比如icloud。

应用程序通常是被禁止在容器外访问或者创建文件的,不过app可以利用一些公开的接口去访问一些信息,比如通讯录,音乐等等,系统有提供专门的方法去访问和修改这些信息。

02_iOS 沙盒及各个目录详解第1张

各个目录的详解:

APPName.app是app的bundle,包含了app以及所以的资源。

这个目录你不能去进行写操作,为了防止篡改,在app装的时候就行了签名处理,一但你进行了写操作,签名就会修改,app无法启动

这个目录的内容不会被itunes和icloud进行备份

Documents使用该目录主要是存储用户的相关数据,这个目录下的文件可以通过文件共享提供给用户,因此这个目录下最好只存储app希望公开给用户的数据信息。

这个目录的内容会被itunes或者icould进行备份

Libarary主要是存储与用户数据无关的数据(一般是不想共享给用户的数据)。下边有caches和preferences等子目录。app也可以在这个目录下创建自己的目录

一般图片的缓存,数据缓存都可以放在这个caches子目录下

系统提供的数据存储nsuserdefault生成的plist文件,是放在preference目录下的

需要注意的是:itunes和icloud会备份除了caches文件夹外的其他内容

temp存放一些临时文件。这个目录下的数据在app不运行的时候都可能会被清除,因此对于可能还需要用到的数据,需要及早备份,如果不需要可以直接清理掉

这个目录下的内容不会被itunes或者是icould备份

参考网址:https://www.jianshu.com/p/29e65b87246e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

免责声明:文章转载自《02_iOS 沙盒及各个目录详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇树莓派上传数据错误一例自然语言处理--jieba和gensim的分词功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WebSocket入门及使用指南

最近在一个项目中,需要使用到websocket,于是就花了一点时间来熟悉websocket并总结写篇blog。 为何使用websocket 在浏览器与服务器通信间,传统的 HTTP 请求在某些场景下并不理想,比如实时聊天、实时性的小游戏等等, 其面临主要两个缺点: 无法做到消息的「实时性」; 服务端无法主动推送信息; 其基于 HTTP 的主要解决方案...

Windows XP 注册表修改大全

1、在〔我的电脑〕上隐藏软驱 在〔开始〕→〔运行〕→输入〔Regedit〕→〔HKEY_CURRENT_USER〕→〔Software〕 →〔Microsoft〕→〔Windows〕→〔CurrentVersion〕→〔Policies〕→〔Explorer〕 →增加一个 DWORD 值〔NoDrives〕的数值资料请使用十进制及如下设置 隐藏 A 盘为〔...

解决: Mysql安装时mysqld.exe报`应用程序无法正常启动(0xc000007b)`的问题

本机环境 Windows10专业版Mysql5.7.30解压版 Win10系统Mysql5.7/Mysql8.0解压版安装请参考 问题描述 mysql5.7.30解压版安装, 解压之后执行初始化命令, 桌面弹出提示"应用程序无法正常启动(0xc000007b)" 解决办法 查阅资料后, 得知原因是系统dll动态链接库或者c++依赖库缺失导致安装失败, 所以...

【华为云技术分享】容器与虚拟化的结合:浅谈“安全容器”技术发展趋势

摘要:无论公有云还是私有云厂商,都认识到了将虚拟化的隔离性和容器的高效运维特性相结合,是云原生平台发展的必然趋势。 容器是如何解决隔离问题的 众所周知,容器技术的出现有两个关键原因: 1.  软件运行过程中的资源和环境的隔离。 2.  软件因为运行环境多样带来的打包和配置的复杂性。 而对于软件运行环境的隔离需求,从计算机出现之初就已经开始了,多任务分时操作...

【官网翻译】性能篇(一)应用待机群组

前言        本文翻译了Android开发者文档中的一篇官方文档,用于介绍Android9的一个新特性——应用待机群组(App Standby Buckets)。        中国版官网原文地址为:https://developer.android.google.cn/topic/performance/appstandby。        路径为...

前端chrome浏览器调试总结

一、调试工具 1、Elements 先来看这张图最上头的一行是一个功能菜单,每一个菜单都有它相应的功能和使用方法,依次从左往右来看箭头按钮:用于在页面选择一个元素来审查和查看它的相关信息,当我们在Elements这个按钮页面下点击某个Dom元素时,箭头按钮会变成选择状态 设备图标:点击它可以切换到不同的终端进行开发模式,移动端和pc端的一个切换,可以选择不...