• QQ空间
  • 收藏

苹果iOS5限制应用本地存储问题

| 2021-04-17

  苹果 iOS 5 系统增加了一个新的机制——在设备容量空间不足的情况下自动清除高速缓存文件或临时目录的内容。这意味着,如果你设备的容量快到极限了,应用存储的很多离线内容,包括文章、杂志、图书、漫画以及其他数据都将被清空!如果用户需要,将不得不重新下载这些内容。

  关于苹果 iOS 5 的这次“变革”,困扰了不少开发者。新规则实施之后,用户想使用离线数据将会有很多困难,而且也有开发者反应他们的应用通不过苹果应用审核团队的审核。关于这次更新的讨论非常“火热”,当然也是相当杂乱,因为其中参杂了好几个问题,简单的归纳就是:

缓存和临时文件夹的语义问题 苹果相关文件的变化 应用审核被拒 iTunes 和 iCloud 到底备份了哪些内容 iOS 5 行为变化

  下面我们来分开讨论以上5个问题:

  1.缓存和临时文件夹的语义问题

  虽然苹果应用使用的临时文件夹同跟目录下的 /tmp 并非同一个文件夹,但是开发者不应该认为它们有什么显著的差别,他们都是临时文件夹,所以性质相同。如果你有过 OS X 、Unix 或 Linux 背景,你应该能理解,苹果其实没有义务向用户保证缓存和临时文件到底能保存多久。

  即使你以前从来没有听说过临时文件夹和缓存文件夹里面的东西会被系统删除这种情况,也不代表这个情况将来会有所改善,特别是苹果已经在文件中申明这些。

  2.苹果相关文件的变化

  最晚到2011年6月29日的时候,iOS发布之前,苹果的文件(web.archive.org存档,被墙)中涉及到<Application_Home>/Documents 的部分是这样描述的:

Use this directory to store user documents and application data files.

使用这个文件夹来存储用户文件和应用数据文件。

  这个说明相当容易理解,这也很清楚的说明了为什么开发者对 iOS 5 中文件目录规则的改变不满。

  关于<Application_Home>/Library/Caches 是这样说明的:

Use this directory to write any application-specific support files that you want to persist between launches of the application or during application updates. Your application is generally responsible for adding and removing these files. It should also be able to re-create these files as needed because iTunes removes them during a full restoration of the device.

使用这个文件夹来写应用在运行期间和更新期间需要用到的任何文件。你的应用必须负责好添加和删除这些文件。而且这些文件应该是可以被重建的,因为 iTunes 会在还原设备备份的时候删除这些文件。

  这段说明中的措词,不可否认是比较模糊的。读这段说明的时候我的第一印象就是苹果在 iOS 5 中实施了一些与本条款相矛盾的根本性改变。但换个角度来说,通过”generally” 和 “able to re-create” 这些字眼,可以明显看出苹果基本上就是在警告开发者系统将怎么对待这些文件了。

  iCloud 数据存储准则(需登录查看) 这样说明:

  To ensure that backups are as efficient as possible, be sure to store your app’s data according to the following guidelines:

1. Only documents and other data that is user-generated, or that cannot otherwise be recreated by your application, should be stored in the <Application_Home>/Documents directory and will be automatically backed up by iCloud.

  2. Data that can be downloaded again or regenerated should be stored in the <Application_Home>/Library/Caches directory. Examples of files you should put in the Caches directory include database cache files and downloadable content, such as that used by magazine, newspaper, and map applications.

  3. Data that is used only temporarily should be stored in the <Application_Home>/tmp directory. Although these files are not backed up to iCloud, remember to delete those files when you are done with them so that they do not continue to consume space on the user’s device.

2021-05-08
未来医疗 中国移动广告市场知多少?
你知道中国移动广告市场的盘子有多大吗?据国外媒体报道,中国的移动游戏市场十分可观!据估计,2012 年底前,就会有近 2 亿中国人拥有搭载 iOS 或 Andr... <详情>
2021-05-08
未来医疗 光大银行携手腾讯云 打造新一代银行IT架构
  人民网深圳11月15日电 继合作共建金融科技创新实验室后,腾讯云与光大银行近日宣布:光大银行将基于腾讯云分布式服务框架TSF构建新一代系统架构,打造稳定、安... <详情>
2021-05-08
未来医疗 深度丨为何台湾同胞总眼红大陆的互联网?
[ 导读 ] 两年前,雷军等在和台湾代表交流两岸移动互联网发展时,认为台湾地区移动革命的机会在于智能家居,是台湾在未来五年里面最重要的方向。但是现在来看,台湾... <详情>
2021-05-01
未来医疗 移动端交易规模扩大 日本二手商品线上交易表现抢眼
移动端交易规模扩大,带动产业链发展 日本二手商品线上交易表现抢眼   人民日报 本报驻日本记者 刘军国   在日本大街上,随处可见从事二手商品交... <详情>
2021-05-01
未来医疗 五门精品课,五大导师,邀你参加五天学习挑战
起点学院现推出#5天学习挑战#,挑战者可免费在5位大咖导师的带领下,学习5门专题课程,轻松打通数据分析之道。整个学习将从基础工具的运用入手,教你数据分析的经典方... <详情>
2021-05-01
未来医疗 统一二维码标识注册管理中心正式启动中国区发行
  【环球网科技 记者 樊俊卿】20日,中国二维码注册认证中心对外公布,近期成立的国内首家全球代码发行机构——统一二维码标识注册管理中心... <详情>