1、iOS沙盒机制原理

iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。

1.1、每个应用程序都有自己的存储空间

1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容

1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。

通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是:sandbox对应用程序执行各种操作的权限限制。

2.获取应用软件沙盒sandbox方法:

通过在iOS程序viewDidLoad中打印NSString *path = NSHomeDirectory(); 然后在Finder中前往该打印出的路径,即可看到该程序的沙盒sandbox.

例如:/Users/wujia121/Library/Developer/CoreSimulator/Devices/3FDEE527-D4DB-492F-9490-1D04AF9559A8/data/Containers/Data/Application/82A190D8-C6F2-444F-90A5-17B051CC0021

(可见sandbox保存在Mac用户文件夹下,而SDK保存在Xcode包content中)

3.iphone沙盒模型的有四个文件夹:

分别是 documents,Library,tmp,app包。 手动保存的文件在documents文件里,NSUserdefaults保存的文件在tmp文件夹里。

1、Documents 目录:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录。您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

2、Library 目录:这个目录下有两个子目录:Caches 和 Preferences

Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.

Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

3、tmp 目录:这个目录用于存放临时文件,当iOS设备重启时,文件会被自动清除。

4、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。(Xcode 6以后似乎.app不保存在沙盒中)

4.获取Sandbox下各文件夹路径的方法:

//1. 沙盒根目录/

NSString*homePath = NSHomeDirectory();

NSLog(@"homePath:%@",homePath);

//2. 沙盒/Documents/

NSString*docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

NSLog(@"docPath:%@",docPath);

//3. 沙盒/Library/

NSString*libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];

NSLog(@"libPath:%@",libPath);

//3.1 沙盒/Library/Preferences

//NSString *preferPath = [NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSUserDomainMask, YES) firstObject];

//此方法获取路径是沙盒/Library/PreferencePanes并不存在这样的路径,想要访问Preferences文件夹,需要拼接路径。或者直接使用NSUserDefaults便可以在Preferences文件夹下创建plist文件。

NSString*preferPath = [libPath stringByAppendingPathComponent:@"Preferences"];

NSLog(@"preferPath:%@",preferPath);

//3.2 沙盒/Library/Cache

NSString*cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

NSLog(@"cachePath:%@",cachePath);

//4. 沙盒/tmp

NSString*tmpPath = NSTemporaryDirectory();

NSLog(@"tmpPath:%@",tmpPath);

//5. 打印xx.app位置

NSLog(@".appPath:%@",[[NSBundlemainBundle] bundlePath]);//打印app安装包的在模拟器/手机上的位置(~users/Application文件夹下)

真机打印结果:

homePath: /var/mobile/Containers/Data/Application/849F64A3-BE4A-44FE-A789-6790A77E567AdocPath: /var/mobile/Containers/Data/Application/849F64A3-BE4A-44FE-A789-6790A77E567A/DocumentslibPath: /var/mobile/Containers/Data/Application/849F64A3-BE4A-44FE-A789-6790A77E567A/LibrarypreferPath: /var/mobile/Containers/Data/Application/849F64A3-BE4A-44FE-A789-6790A77E567A/Library/PreferencescachePath: /var/mobile/Containers/Data/Application/849F64A3-BE4A-44FE-A789-6790A77E567A/Library/CachestmpPath: /private/var/mobile/Containers/Data/Application/849F64A3-BE4A-44FE-A789-6790A77E567A/tmp/

.appPath: /private/var/mobile/Containers/Bundle/Application/429B6769-6D90-4782-844C-CA95E8B28166/打印程序的沙盒地址2015.10.app

5.沙盒路径截图:

ios沙箱软件_iOS应用软件沙盒sandbox相关知识(整理)相关推荐

  1. iOS应用软件沙盒sandbox相关知识(整理)

    1.iOS沙盒机制原理 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. ...

  2. ios沙箱软件_iOS沙盒管理工具FHHSandBoxViewer

    KeyWord:沙盒文件递归遍历.Swift里的闭包多个weak修饰.iOS使用AirDrop 操作演示.gif 平时真机开发调试App的时候想查看沙盒具体内容一般做法是连接Xcode下载整个App的 ...

  3. ios沙箱软件_iOS 开发之沙盒机制

    1.iOS 沙盒机制简介 沙盒也叫沙箱,英文standbox,其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中.在沙盒机制下,每个程序之间的文件夹不能互相访问.iOS系统为了保证系统安 ...

  4. ios沙箱软件_iOS app ipa 与 沙盒

    app沙盒 .app:存放程序源文件,上架前经过数字签名,上架后不可修改 Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在 ...

  5. ios沙箱软件_ios真机和模拟器沙盒文件(一)

    版本记录 版本号 时间 V1.0 2017.06.11 前言 我们有时候需要在沙盒中存储东西,所以总有需求就是查看沙盒文件里面存储的文件,这就需要我们查看沙盒文件,沙盒文件包括真机的沙盒文件和模拟器的 ...

  6. ios沙箱软件_iOS沙盒获取

    屏幕快照 2017-04-11 上午11.08.53.png 1.获取沙盒中home目录(主目录,沙盒的最外层)的路径 NSString *homeDir = NSHomeDirectory(); N ...

  7. ios沙箱软件_IOS沙箱操作

    沙盒的内容 Bundle Container:MyApp.app 包 1. .h/.m ⺫⽬目标⽂文件 2. Info.list 3. Images.xasset:place.png 4.Launch ...

  8. ios沙箱软件_iOS iap 应用要进行的沙箱测试是什么?

    刚好在等审核,来顺手答下. 沙箱测试是在你的app含有内购功能的前提下,需要进行的测试. iOS 内购通过Apple ID购买,你需要在itunes connect里面设置app的内购功能,得到产品I ...

  9. iOS学习之iOS沙盒(sandbox)机制和文件操作(二)

    接上篇 iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 [cpp] view plaincopy N ...

最新文章

  1. 关于web项目的 ajax 处理方式
  2. C语言经典例4-某一天是这一年的第几天
  3. codelite14中文语言包_Windows下CodeLite完美支持中文的正确设置方法
  4. 我慌了!技术经理问为什么要分布式存储......
  5. RocketMQ集群之搭建2m2s集群(配置说明)
  6. Scrapy入门(二)创建Scrapy项目
  7. Edge on Linux?微软:会有的,但不是现在
  8. C#调用ATL COM
  9. goland 方法注释_goland 设置注释模板的过程图文详解
  10. 【C语言】编写程序,输出以下图形
  11. apicloud - addEventListener 接收不到 sendEvent 的解决方法
  12. 拿到参考资料的预训练模型,太可怕了!
  13. C# 编译或者解释?
  14. 运维工程师到底是做什么的?
  15. FPGA的NIOS-II
  16. 我迟早被这些AI绘画笑死...
  17. 人民币大小写金额转换
  18. 泉州信息工程学院 计算机考试,泉州信息工程学院教务网络管理系统成绩查询、网上选课查分登录入口...
  19. 2020-09-22关于dialog 问题
  20. 联想T460p加装固态硬盘

热门文章

  1. 国内一些比较大型的外包公司
  2. msiexec.exe更新window install
  3. 使用python生成词云——聆心云心理健康服务平台数据可视分析和可视化
  4. 蓝桥杯准备(Python)罗马数字
  5. 史玉柱经典语录(转)
  6. 个人所得税计算器程序c语言,基于C语言实现的个人所得税纳税系统.docx
  7. aardio 谷歌浏览器自动化 (四) 浏览器动作和信息获取
  8. 简单介绍快快网络游戏盾-云安全防护
  9. 清华大学计算机系九推,人工智能琴棋诗画样样精通,就问你怕不怕 | 清华大学计算机系智能体晚会...
  10. 计算机英语网络电话ppt,楼宇智能化技术(第4版)第4章电话网技术ppt课件