Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS_沙盒文件系统

iOS_沙盒文件系统

作者头像
mikimo
发布于 2022-07-20 06:36:39
发布于 2022-07-20 06:36:39
2.4K0
举报
文章被收录于专栏:iOS开发~iOS开发~

文章目录

1、AppName.app:

这是应用程序的捆绑包,此目录包含应用程序及其所有资源。 您无法写入此目录。为防止篡改,捆绑目录在安装时签名。写入此目录会更改签名,从而导致应用程序无法启动。但是,您可以只读访问应用程序捆绑包中存储的任何资源。

2、Documents:

存放用户生成的数据放入。用户数据通常包括您可能希望向用户公开的任何文件-您可能希望用户创建,导入,删除或编辑的任何文件。对于绘图应用程序,用户数据包括用户可能创建的任何图形文件。对于文本编辑器,它包括文本文件。视频和音频应用程序甚至可能包含用户已下载以供以后观看或收听的文件。

  • 该目录的内容由iTunesiCloud备份。

1)Inbox

其他应用分享到本app的文件会存储在该目录。 您的应用可以读取和删除此目录中的文件,但不能创建新文件或写入现有文件。 (如果用户尝试编辑此目录中的文件,那么您的应用必须在进行任何更改之前以静默方式将其移除目录。)

  • 该目录的内容由iTunesiCloud备份。

3、Library:

这是非用户数据文件的顶级目录。一般将文件放在几个标准子目录中。iOS通常使用Application SupportCaches子目录;但是,您可以创建自定义子目录。 将Library子目录用于您不希望向用户公开的任何文件。您的应用不应将这些目录用于用户数据文件。

  • 该目录的内容(Caches子目录除外)由iTunesiCloud备份。

1)Application Support:

存放应用程序创建的支持文件。通常,此目录包含应用程序用于运行但仍对用户隐藏的文件。此目录还可以包括数据文件,配置文件,模板以及从应用程序捆绑包加载的资源的修改版本。 应用程序可能使用此目录来存储最初包含在应用程序包中的资源的可修改副本。游戏可能会使用此目录来存储用户购买并从服务器下载的新关卡。 该目录的所有内容都应该放在一个自定义子目录中,该子目录的名称应为您应用的捆绑软件标识符或公司的名称。

  • 在iOS中,此目录的内容由iTunesiCloud备份。
  • 您可以-[NSURL setResourceValue:forKey:error:]使用NSURLIsExcludedFromBackupKey键调用从备份中排除文件。必须将所有可以重新创建或下载的文件排除在备份之外。这对于大型媒体文件尤为重要。如果您的应用程序下载了视频或音频文件,请确保它们不包含在备份中。

2)Caches:

存放数据缓存文件。高速缓存数据可用于需要持久保存的时间比临时数据更长的数据,但不能与支持文件一样长。一般来说,应用程序不需要缓存数据才能正常运行,但是可以使用缓存数据来提高性能。缓存数据的示例包括(但不限于)数据库缓存文件和瞬时的可下载内容。请注意,系统可能会删除Caches/目录以释放磁盘空间,因此您的应用程序必须能够根据需要重新创建或下载这些文件。

3)Frameworks:

在macOS中,可以由多个应用程序共享的框架可以安装在本地或用户域中。系统域中的Frameworks目录存储用于创建macOS应用程序的框架。

在iOS中,应用程序无法安装自定义框架。

4)Preferences:

包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类或CFPreferences来获取和设置应用程序的偏好。

4、tmp:

存放临时数据。临时数据包含不需要长时间保留的任何数据。完成操作后,请记住删除这些文件,以免它们继续占用用户设备上的空间。当您的应用未运行时,系统会定期清除这些文件;因此,您无法在应用终止后依赖这些文件的持久性。

  • iTunesiCloud不会备份此目录的内容。

参考: File System Programming Guide

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
02_iOS 沙盒及各个目录详解
在安装一个新的app的时候,安装程序会在沙盒目录下创建许多的容器,每个容器目录都有特定的角色。
用户1219438
2020/12/16
8110
02_iOS 沙盒及各个目录详解
iOS逆向之文件系统
作为一名iOS开发者,长期以来和MacOS、iOS系统打交道,对iOS和MacOS系统并不陌生。在开发中,我们也经常访问甚至修改MacOS的某些目录,每个系统目录都有其特殊的功能定位。而iOS系统源自MacOS,在很多方面iOS都和MacOS很相似,笔者借助最近逆向的机会,系统的学习&梳理了下iOS的系统目录及其结构,顺便总结了常见的文件目录的特殊定位。希望本篇文章能够让读者有所收获。
VV木公子
2020/09/08
9.5K0
iOS逆向之文件系统
基础篇- 沙盒以及文件的操作和存取
iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒,所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。
進无尽
2018/09/12
1.6K0
基础篇- 沙盒以及文件的操作和存取
沙盒
因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件
用户1451823
2018/09/13
2.2K0
漫谈iOS安全
经常都能听到大家说,iOS很安全,iPhone比安卓手机安全。那么为什么iOS会安全,难道仅仅是因为iOS是闭源然后安卓是开源的,开源的就一定比闭源安全?前段时间著名的Xcode Ghost 事件也让人觉得iOS好像并不是那么地安全,今天就随便说说iOS的安全。
Helloted
2022/06/06
4990
漫谈iOS安全
【总结】ios端被忽略的文件容错测试
iphone沙盒模型的有四个文件夹:分别是 documents,Library,tmp,app包。手动保存的文件在documents文件里,NSUserdefaults保存的文件在tmp文件夹里。 1) Documents 目录:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录。您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。 2) Library 目录:这个目录下有两个子目录:Caches 和 Preferences Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好. Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。 3) Tmp 目录:这个目录用于存放临时文件,当iOS设备重启时,文件会被自动清除。 4) AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。 2.确认哪些文件需要进行容错测试? 不同的App本地存储文件的个数、属性都不同,如果所有的文件都要手动进行容错测试,成本与收益可能不成正比,除非通过白盒测试、自动化容错测试等手段来进行避免。那么在以上测试条件不满足时,如何进行精准测试呢? 通过该bug分析发现,出现问题是因为config.plist文件格式发生了变化,所以需要针对特殊测试场景进行考虑: 1)当本地文件格式发生变化时,一定要进行相关文件的容错测试 2)当某文件为App通用文件(比如配置文件),需要重点进行容错测试 3)当文件目录用户容易修改时,需要进行容错关注 3.文件容错测试检查内容 文件或文件夹的检查 1)文件或文件夹不存在 2)文件或文件名称与预期不符 3)文件或文件夹损坏 文件内容的检查 1)文件内容为空 2)文件中的字段被删除 3)文件中的字段类型错误 4)文件中的字段值超出最大值 5)文件中的字段值超出最大长度 6)文件中的字段对应的内容路径不存在
用户5521279
2019/07/17
1.3K0
【总结】ios端被忽略的文件容错测试
iOS学习——iOS常用的存储方式
不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在本地缓存的数据等等。根据要存储的的数据的大小、存储性质以及存储类型,在iOS和Android中哪个都有多种存储方式。其中,iOS中的存储方式主要包括以下六类: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite 3 CoreData 手动存放沙盒 一、沙盒机制 在研究存储方式之前,我们有必要先研究下这些文件会存储到什么地方去
mukekeheart
2018/03/01
3.2K0
iOS学习——iOS常用的存储方式
iOS 数据持久化 - Sandbox
该篇文章是 iOS 持久化方系列的第二篇文章,第一篇请见UserDefaults 浅析及其使用管理。
CoderStar
2022/08/24
1.3K0
iOS 数据持久化 - Sandbox
【客户端检查篇】告别被拒,提升iOS审核通过率(二)
作者:互娱iOS预审团队,隶属于互娱研发部品质管理中心,致力于互娱产品的iOS审核前的验收工作。 通过细分将iOS预审工作划为3大块:客户端资源检查、应用内容检查和提审资源检查,接下来我们先从客户端检查开始介绍。 客户端检查的主要目的是通过客户端配置检查来保证客户端符合苹果的开发者规范以及其他更新的要求,包括存储系统、配置文件、网络连接(VPN)、icon检查、私有API检查,提审前的审核会覆盖这几个部分的各个测试点。 1存储系统检查 苹果官方对用户数据存储有严格的规范,以往有很多被拒案例都是关于存储的。因
腾讯大讲堂
2018/02/12
2.8K0
【客户端检查篇】告别被拒,提升iOS审核通过率(二)
iOS文件操作
常用文件夹 //Home目录 let homeDirectory = NSHomeDirectory() print("homeDirectory:\(homeDirectory)") //Documents目录 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包含此目录 let documentPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirec
码客说
2019/10/22
6040
【Flutter 实战】文件系统目录
不同的平台对应的文件系统是不同的,比如文件路径,因此 Flutter 中获取文件路径需要原生支持,原生端通过 MethodChannel 传递文件路径到 Flutter,如果没有特殊的需求,推荐大家使用 Google 官方维护的插件 path_provider。
老孟Flutter
2020/09/22
3.1K0
【Flutter 实战】文件系统目录
三步走起 提升 iOS 审核通过率 上篇
image.png 2016年的第一天,各位小伙伴儿们,新年快乐~~~在过去一年里,负责 iOS 应用开发的同学们,想必已被 APP Store 的审核机制折磨心累不止。新的一年,又一轮审核即将来袭,你们做好准备了么? 为了帮助各位 iOS 应用开发的同学免受折磨,腾讯 Bugly 特邀互娱 iOS 预审团队通过大量的数据分析,对苹果的审核机制进行了一番总结,连夜赶稿写出提升 iOS 审核的通关秘籍(因为内容较多,因此分为上下两篇),来与大家分享。 经过互娱 iOS 预审团队近一年的数据监控,分析过往提审被
腾讯Bugly
2018/03/23
1.7K0
三步走起 提升 iOS 审核通过率 上篇
Mac OS如何恢复出厂设置?安装Mac OS系统教程
Mac怎么恢复出厂设置?苹果Mac电脑系统一直以稳定安全著称,但有时候Mac OS也会由于某些原因出现运行缓慢、系统崩溃或无法正常启动等的情况,这时候就需要我们重新恢复Mac OS 系统了,今天小编就
MAC先森
2019/09/11
9.7K0
[重置系统]如何重置Mac电脑到出厂状态
当我们的爱机完成了它的使命需要卖给二手平台,或者你只是单纯地想把整个电脑恢复为出厂状态(虽然完全没这个必要),那么就需要使用macOS的内置工具来实现这个过程,本文就介绍一下如何重置mac电脑系统。
98k
2019/05/15
5.7K0
【客户端检查篇】告别被拒,提升iOS审核通过率(二)
作者:互娱iOS预审团队,隶属于互娱研发部品质管理中心,致力于互娱产品的iOS审核前的验收工作。 通过细分将iOS预审工作划为3大块:客户端资源检查、应用内容检查和提审资源检查,接下来我们先从客户端检查开始介绍。 客户端检查的主要目的是通过客户端配置检查来保证客户端符合苹果的开发者规范以及其他更新的要求,包括存储系统、配置文件、网络连接(VPN)、icon检查、私有API检查,提审前的审核会覆盖这几个部分的各个测试点。 1 存储系统检查 苹果官方对用户数据存储有严格的规范,以往有很多被拒案例都是关于存储的。
WeTest质量开放平台团队
2023/05/04
1.5K0
【客户端检查篇】告别被拒,提升iOS审核通过率(二)
分布式文件系统FastDFS详解
上一篇文章《一次FastDFS并发问题的排查经历》介绍了一次生产排查并发问题的经历,可能有些人对FastDFS不是特别的了解,因此计划写几篇文章完整的介绍一下这个软件。 为什么要使用分布式文件系统呢? 嗯,这个问题问的好,使用了它对我们有哪些好处?带着这个问题我们来往下看: 单机时代 初创时期由于时间紧迫,在各种资源有限的情况下,通常就直接在项目目录下建立静态文件夹,用于用户存放项目中的文件资源。如果按不同类型再细分,可以在项目目录下再建立不同的子目录来区分。例如: resources\static\fil
纯洁的微笑
2018/04/18
1.8K0
分布式文件系统FastDFS详解
Android文件系统整理
:如果有一天,我的生命要靠一台机器维持,请帮我关掉它。 :哎~你怎么把路由器关了。
大公爵
2022/11/02
9660
Ubuntu 文件系统的概括
1.根目录   根目录,即整个文件系统的逻辑终点,用“/”表示 2.一级目录   */bin 包含普通用户和系统、系统管理员可以共享的各种通用程序,如bash、dd、df、gzip、grep、mv和mkdir等常用的基本命令   */boot 包含系统引导程序GRUB及其配置文件、Linux内核文件vmlinuz和磁盘内存映像文件initrd.img等重要引导文件   */dev 包含系统支持的所有设备文件。具体来说,console表示系统控制台,lp0表示打印机,mem表示系统的物理内存,sda表示连接到主控之气上的第一个磁盘,sda1和sda2等则分别表示其中的第一个和第二个磁盘分区,ttyXX表示系统的串口设备等  */etc 包含系统管理和维护方面的所有配置文件,如host.conf、resolv.conf、sysctl.conf和syslog.conf等。此外,还有大量的配置文件分别为与单独的子目录中。需要注意的是,要定期使用Backups备份工具备份这个目录中的重要配置文件,以便需要时能够快速地恢复系统   */home 包含所有普通用户的家目录。每增加一个新用户,系统将会在/home目录中创建一个和用户名相同的子目录作为该用户的家目录  */lib 包含系统引导过程,以及运行系统命令所需要的内核模块和各种动态链接共享库文件(扩展名为.so,类似于Windows系统中的.dll文件)  */lost+found 每个文件系统分区都存在一个lost+found目录,用于存储fsck命令在检测与dufus文件系统时删除的文件和目录   */media 包含移动存储介质(移动硬盘或U盘)的挂载点,如插入U盘,系统将会自动将U盘挂载在此目录下的某个子目录中  */mnt 包含所有自定义的文件系统的挂载点,可以挂载任何文件系统,如NFS或CIFS网络文件系统  */opt 应用程序等附加软件的安装目录,类似于Windows系统中的Program Files目录  */proc 虚拟文件系统,系统关闭时为空目录,系统运行时进程文件系统根目录,其中的部分文件分别对应当前正在运行的进程,可用于访问当前进程的地址空间   */root 超级用户root的家目录  */sbin 包含超级管理员的常用工具,如管理和维护、系统引导和修复命令集合  */srv 分担了/var目录的一些功能,保存一些网络服务所用的数据文件   */sys 和proc一样是虚拟目录,系统各种设备配置信息的根目录,如block子目录中含有磁盘及磁盘分区的配置信息  */tmp 临时文件目录,用于存储系统运行过程中生成的临时文件,也可以供用户存储自己的临时文件。需要注意的是,只有文件的创建者才能删除相应的文件  */usr 此目录既可以作为根目录下的一个子目录,其中保存系统提供的各种共享数据(如用户命令、库函数、头文件和文档等),又可以作为一个单独的文件系统,可以认为是对根目录的一个递归目录,使得文件系统具有更大的灵活性  */var 该目录和/usr目录类似,首先是根目录下的一个子目录,也可作为一个单独的文件系统,用于存储各种可变长的数据文件(如日志文件)、暂存文件或待处理的临时文件等 3.重要的二级目录   */boot/grub 其中存有GRUB配置文件,以及3种不同的初始引导程序等  */etc/apt 其中包含软件管理工具使用的配置文件,如sources.list等  */etc/cron.d 用于存储corn进程调度与运行后台程序所用的配置和控制文件。其他有关的目录包括:corn.hourly、corn.daily、corn.weekly和corn.monthly4个目录  */etc/init.d 用于存储系统启动过程中需要由init调度执行的脚本文件  */etc/network 其中包含网络接口的配置文件interface,以及相关的配置工具  */etc/X11 其中包含X服务器使用的各种配置文件,如xorg.conf等  */usr/bin 其中包含用户经常使用的各种命令   */usr/include 用于存储各种C语言头文件。这个目录及其子目录中的头文件是C开发人员需要经常引用的文件。其中,sys、linux和bits等子目录中定义的数据结构,对于深入学习、理解和掌握Linux系统具有极大的参考价值  */usr/lib 其中包含各种共享的库函数,可供程序员以静态或动态的方式链接自己开发的应用程序   */usr/sbin 其中包含系统引导完成之后系统管理员经常使用的各种系统管理和维护命令  */usr/share 共享目录,其中包含man(联机文档的根目录)、info(GNU inf
静谧的小码农
2019/01/11
1.1K0
IOS获得各种文档文件夹路径的方法
iphone沙箱模型的有四个目录,各自是什么,永久数据存储一般放在什么位置。得到模拟器的路径的简单方式是什么.
全栈程序员站长
2022/07/06
1.8K0
苹果沙盒机制详解
沙盒(SandBox)是IOS的一个防御机制,每个应用都会有一个自己的沙盒,应用只能在自己的沙盒目录下读写数据,应用A不能访问应用B的沙盒,他们之间是相互隔离的,正因为如此攻击者在上传恶意程序后即时侥幸的通过了App Store的审核被安装到用户的手机之后也不能获取其他应用的数据,当然在在用户授权的情况下应用也可以访问其他目录下面的文件,比如:用户授权情况下应用可以访问相册、通讯录,在开发中经常会涉及到iOS沙盒目录,比如:读写文件,归档解档等
Al1ex
2024/05/08
1.6K0
苹果沙盒机制详解
相关推荐
02_iOS 沙盒及各个目录详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档