惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
有赞技术团队
有赞技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Threat Research - Cisco Blogs
L
LangChain Blog
Simon Willison's Weblog
Simon Willison's Weblog
Project Zero
Project Zero
Latest news
Latest news
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
MyScale Blog
MyScale Blog
C
Check Point Blog
IT之家
IT之家
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
G
Google Developers Blog
T
Tor Project blog
T
Threatpost
D
DataBreaches.Net
博客园 - 【当耐特】
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Troy Hunt's Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
博客园_首页
S
Securelist
T
The Exploit Database - CXSecurity.com
Last Week in AI
Last Week in AI
量子位
U
Unit 42
Know Your Adversary
Know Your Adversary
Hugging Face - Blog
Hugging Face - Blog
S
Security Affairs
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
N
News and Events Feed by Topic
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志

月光博客

AI编程从零开始:环境配置到开发调试-月光博客 母亲被保健品诈骗-月光博客 向身体低头,向岁月妥协:我的高血压“还债日记” -月光博客 月光博客电子书:《信息安全指南》 谷歌发布2025年度搜索排行榜 中国2025社会热点大事记 2025年十大流行语发布 7天3次,骗子骗走我母亲95万元 “技术男”设三重安全墙,母亲95万存款还是被骗走了 电信诈骗后的复盘:母亲的95万元,是怎么从手机银行里消失的 母亲被电信诈骗95万元的全过程 阿根廷警察被谷歌街景相机拍到裸照 网信办开展“清朗·整治恶意挑动负面情绪问题”专项行动 翟欣欣敲诈勒索案一审获刑12年 《绝命毒师》影评:力工觉醒后的梭哈至死 《人工智能生成合成内容标识办法》正式施行 用AI分析你的财务信息 腾讯子公司实习HR怒怼求职者后被开除 OpenAI发布最强模型GPT-5,免费向所有用户开放 用AI解构你的日记 用AI分析你的游戏偏好 用AI分析你的观影偏好 用AI分析你的听歌偏好 《白鹿原》人物分析:乱世浮沉中的人性剖析 乌托邦的捷径:让AI治理“失败国家” 苹果AI的“路径错误”:为什么它在大模型时代掉队了? 《暗黑破坏神3》第35赛季开荒指南 我对特朗普的看法 欧·亨利十大经典小说鉴赏 HBO电视剧《最后生还者》第二季影评 播客自动化更新分发教程 《围城》人物分析:知识分子的时代困局 NotebookLM音频概览支持中文 《暗黑破坏神3》国服回归 《暗黑破坏神3》国服赛季开荒指南 《网络数据安全管理条例》正式发布实施 契约之下的自由:社会契约论 如何去除文章的AI味道 电影《好东西》影评 我的价值观:义务论和效益论 《魔兽世界》正式服PVP教程 电影《哪吒2》影评 中医理论不是科学理论 DeepSeek与主流AI模型对比评测 TikTok停止在美国服务 我的三观(世界观、价值观、人生观) 《无限暖暖》游戏评测 2024年财经年度总结 月光博客2024年推荐阅读文章 IMDb公布2024年热门电影和电视剧 2024年十大流行语发布 谷歌发布2024年度搜索排行榜 中国2024社会热点大事记 Google Adsense税务居住地证明申请教程 极狐GitLab回应前员工实名举报公司高管:恶意诽谤造谣 升级FTTR千兆光纤带宽 字节跳动起诉前实习生索赔800万 看完历届奥斯卡最佳影片后的体验 李子柒已经正式改名并恢复更新 苹果历年新春短片 “姜萍事件”调查结果公布 胡锡进社交平台恢复更新 上海女子沙白自杀的伦理道德分析 京东与杨笠一起玩火 字节跳动大模型训练被实习生攻击,涉事者已被辞退 《加勒比海盗》系列电影 《夺宝奇兵》系列电影时间线 《侏罗纪公园》系列电影时间线 《终结者》系列电影时间线 华为禁止用户从外部手动安装安卓应用(APK文件) 《炉石传说》国服回归一片混乱 官媒辟谣苹果手机被远程引爆 小米回应摄像头里出现陌生男子说话 环球人物:民族大义不是流量密码,盲目排外没有土壤 《异形》系列电影时间线 看完IMDb250后的体验 暴雪《炉石传说》国服开启预约 网易DD参与代打《魔兽世界》事件的深入分析 福建男子四年前“翻墙”浏览境外网站被行政处罚 《魔兽世界》正式服开服两周游戏体验 暴雪游戏足迹查询:查看暴雪游戏的数据 用AI分析你的推特社交网络数据 胡锡进停更三个月 国家网络身份认证公共服务管理办法向社会公开征求意见 苹果将部分产能转回中国 Windows全球大范围蓝屏 电影《V字仇杀队》影评 微软中国员工禁用安卓手机:只能用iPhone 《魔兽世界》怀旧服“巫妖王之怒”游戏体验 百度旗下萝卜快跑已在多个城市开放载人测试 我为什么不喜欢华为这家企业 胡锡进:强烈谴责苏州袭击日本人的凶手 20美元在美国超市的购买力 华为紧急辟谣“是国内最大的牛肉进口商” 苹果公司公布2024年Apple设计大奖获奖名单 自动生成电影剧本:人工智能技术的崭新里程碑 电影《芳华》人物分析 Steam账号被盗号的解决方法 中文互联网内容正在逐步消失 马斯克:推特域名已全部转移到X
苹果iOS 5限制应用本地存储问题
投稿 · 2011-10-28 · via 月光博客

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

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

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

苹果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.

译者:为了保证数据备份的可能性和有效性,请确保你的应用数据符合以下规则:

1.只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在<Application_Home>/Documents 目录下面,并将通过iCloud自动备份。

2.可以重新下载或者重新生成的数据应该保存在 <Application_Home>/Library/Caches 目录下面。举个例子,比如杂志、新闻、地图应用使用的数据库缓存文件和可下载内容应该保存到这个文件夹。

3.只是临时使用的数据应该保存到 <Application_Home>/tmp 文件夹。尽管 iCloud 不会备份这些文件,但在应用在使用完这些数据之后要注意随时删除,避免占用用户设备的空间。

如果我们暂时暂时忘记很多新闻、杂志、地图应用的唯一目的就是显示离线内容这个事实的话,以上条款还是相当清楚和有意义的。

3.应用审核被拒

最近不断有开发者反应在 Documents 文件夹存储 “任何/一些/很多”(any/some/much) 数据的应用被苹果的应用审核团队拒绝。但有些开发者已经成功地向应用审核团队解释他们的应用存储文件的原理,并表明他们的应用是完全遵守开发规则的。

现在看来,苹果应用审核团队也并没有十足的把握判断到底哪些文件夹中存储的哪些数据是用户生成的,而哪些数据又是可以重新下载和重新生成的。

4.iTunes 和 iCloud 到底备份了哪些内容

应用文件夹所有内容都会备份,除了:

  • 应用程序本身bundle(.app)
  • <Application_Home>/tmp
  • <Application_Home>/Library/Caches directory

这在iCloud 数据存储准则中有很清楚的说明。

其他的文件也清楚的申明了,应用程序支持文件夹也会被iTunes备份。在讨论中一些开发者建议应用支持文件夹应该比缓存文件夹更安全点(更持久点)。在我看来,自从iCloud 存储推出以来,苹果应用审核团队将会重点打击那些需要存储大量应用支持文件在Documents 文件夹中的应用。

5.iOS 5 的行为变化

在 iOS 5 设备中,当用户收到存储空间不足的警告时,如果此时应用没有运行,那么该应用的 <Application_Home>/Library/Caches文件夹中的数据将被清空。

这意味着在 iOS 5 中应用将没有任何文件夹可以存储以下文件:

  • 没有备份到iTunes/iCloud的文件
  • 删除不会带来危险的文件

显然,现在要让 iOS 5.0 给开发者有一个文件夹存放文件已经不可能了,但是假如有足够的开发者向苹果表明他们确实需要这样一个文件夹来存储一些数据,我想在将来的版本当中,也许会出现改善。

给开发者的建议:赶紧给苹果提交漏洞报告

原文作者:Our4.org,原文链接

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