iOS APP 版本更新后,原文件的保存情况。

在应用程序更新过程中被保存的文件:

更新应用程序就是将用户下载的新版应用程序代替之前的版本。在这个过程中,iTunes会将更新过的应用程序安装到新的应用程序目录下,并在删除老版本之前,将用户数据文件转移到新的应用程序目录下。在更新的过程中,iTunes保证以下目录中的文件会得以保留:

/Documents

/Library/Preferences

虽然其它用户目录下的文件也可能被转移,但是您不应该假定更新之后该文件还仍然存在。

常用目录:

/AppName.app        这是程序包目录,包含应用程序的本身。

/Documents/      苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录,如用户信息等永久性文件,这个目录用于存储用户数据或其它应该定期备份的信息。iTunes会备份这个目录的内容。

/Library/Preferences  这个目录包含应用程序的偏好设置文件。iTunes会备份这个目录的内容。

/Library/Caches    这个目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。此目录下文件不会在应用退出删除,如图片、视频缓存,iTunes不对这个目录的内容进行备份。

/tmp/         这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。iTunes不对这个目录的内容进行备份。

沙盒和NSBundle的相关知识点

1、沙盒机制介绍

iOS中的沙盒机制是一种安全体系。每个iOS程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。就是处于安全因素的考虑,ios将各个App分别严格地存放在文件系统的独立位置这样的机制称为沙盒(Sandbox)。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。所有的非代码文件都要保存在此,例如属性文件plist、文本文件、图像、图标、媒体资源等。沙盒是用来存入缓冲区的,APP关掉,缓存被自动清理。

沙盒路径:NSLog(@"%@",NSHomeDirectory());

2、沙盒目录结构

(1)/AppName.app 应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以不能在运行时对这个目录中的内容进行修改,否则会导致应用程序无法启动。

(2)/Documents/ 保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据

(3)/Library 目录:这个目录下有两个子目录:

可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份

* /Library/Caches(缓存) 保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。

* /Library/Preferences (偏好)保存应用程序的偏好设置文件(使用 NSUserDefaults( 这个就是放这) 类设置时创建,不应该手动创建;连iTunes可备份,在应用程序更新时会自动备份;plist文件就放在此处)。

(4)/tmp/ 保存应用运行时所需要的临时数据,该路径下的文件不会被iTunes备份。iphone 重启时,会自动清除该目录下所有文件;例如录制视频完成后是放在/temp/;所以应该将视频文件从该文件夹转移到相册中,否则视频文件就会被系统清理掉

iTunes在与iPhone同步时,备份所有的Documents和/Library/Preferences文件。

3、bundle 是一个目录,其中包含了程序会使用到的资源,这些资源包含了图像,声音,编译好的代码,nib文件(用户也会把bundle称plug-in),对应bundle,cocoa提供了类NSBundle。

NSBundle:可以理解为沙盒里的App包(比如“微信应用显示包内容”那个包);应用程序的文件放在Bundle下,所以在Xcode中取文件路径就从bundle下取;例如read.txt是一个文本文件,取出它的文件路径,如下: NSString *filePath=[[NSBundle mainBundle]pathForResource:@"read" ofType:@"txt"];

沙箱的作用是隔离应用程序,每个应用程序只能操作自己的沙箱中的东西

// 应用程序的bundle相当于是一个只读的沙箱环境

参考链接:

沙盒和NSBundle

iOSAPP升级时文件的留存问题

iOS App 升级时文件的保留情况

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容