iCloud 会通过WiFi每天自动备份用户iOS设备。除了应用Bundle本身、Caches目录和tmp目录,app目录下的所有东西都会被备份。由于备份通过WiFi进行,并且为每个用户存储在iCloud中,应用需最小化自己存储的数据数量。大文件会延长备份时间,并且消耗用户的可用iCloud空间。

为了确保备份尽可能快速高效,应用存储数据需要遵循以下指导方针:

1. 只有那些用户生成的文档或其它数据,或者应用不能重新创建的数据,才应该存储在/Documents目录下,并且会被自动备份到iCloud。

2. 可以重新下载或生成的数据,应该存储在/Library/Caches目录。例如数据库缓存文件、可下载文件(杂志、报纸、地图应用使用的数据)等都属于这一类。

3. 临时使用的数据应该存放在/tmp目录。尽管这些文件不会被iCloud备份,应用在使用完之后需要记得删除这些文件,这样才不会继续占用用户设备的空间。

4. 使用"不要备份"属性来指定那些需要保留在设备中的文件(即使是低存储空间情况下)。那些能够重新生成,但在低存储空间时仍需保留,对应用正常运行有影响,或者用户希望文件在离线时可用的文件,需要使用这个属性。无论哪个目录下的文件(包括Documents目录),都可以使用这个属性。这些文件不会被删除,也不会包含在用户的iCloud或iTunes备份中。由于这些文件一直占用着用户设备的存储空间,应用有责任定期监控和删除这些文件。

iOS 5.0.1开始支持"do not backup"文件属性(com.apple.MobileBackup),允许开发者明确地指定哪些文件应该被备份,哪些是本地缓存可以自动删除,哪些文件不需要备份但不能删除。此外,对目录设置这个属性,会阻止备份该目录和目录中的所有内容。

文件可以分为以下四种数据类型:

  • 关键数据

这些是用户创建的数据,或其它不能重新生成的数据。应该存放在/Documents目录下,并且不应该标记为"do not backup"属性。关键数据在低存储空间时也会保留,而且会被iCloud或iTunes备份。

路径:/Documents

属性:不要设置"不备份"

管理:iOS系统即时遇到存储空间不足的情况下,也不会清除,同时会备份到iTunes或iCloud中

  • 缓存数据 

可以重新下载或生成的数据,而且没有这些数据也不会妨碍用户离线使用应用的功能。缓存数据应该保存在/Library/Caches目录下。缓存数据在设备低存储空间时可能会被删除,iTunes或 iCloud不会对其进行备份。

路径:/Library/Caches

属性:默认

管理:在存储空间不足的情况下,会清空, 并且不会被自动备份到iTunes和iCloud中

  • 临时数据

应用需要写到本地存储,内部使用的临时数据,但不需要长期保留使用。临时数据应该保存在/tmp目录。系统可能会清空该目录下的数据,iTunes或iCloud也不会对其进行备份。应用在不需要使用这些数据时,应该尽快地删除临时数据,以避免浪费用户的存储空间

路径:/tmp

属性:默认

管理:随时可能被iOS系统清除,且不会自动备份到iTunes和iCloud,尽量在文件不再使用时应用自己清空,避免对用户设备空间的浪费

  • 离线数据

可以下载或重新创建,但用户希望在离线时也能访问这些数据。离线数据应该存放在/Documents目录或/Library/Private Documents目录,并标记为"do not backup"属性。这两个位置的数据在低存储空间时都会保留,而"do not backup"属性会阻止iTunes或iCloud备份。应用不再需要离线数据文件时,应该尽快删除,以避免浪费用户的存储空间。

路径:/Documents  或 /Library/自定义的文件夹

属性:放于Documents下不需设置,放在自定义文件夹中需设置"不备份"

管理:与关键数据类似,即时在存储空间不足的情况下也不会清除,应用自己应该清除已经不再使用的文件,以免浪费用户设备空间

设置Do Not Backup扩展属性

#import "sys/xattr.h"- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)url {const char* filePath = url.path.fileSystemRepresentation;const char* attrName = "com.apple.MobileBackup";u_int8_t attrValue = 1;int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);return result == 0;
}

iOS阻止文件被iTunes和iCloud同步相关推荐

  1. Mac技巧|如何阻止 iCloud 同步某个文件夹?

    使用 iCloud 的过程中,难免遇到有些文件夹你不希望同步.比如游戏制作,视频剪辑等的工程文件,iCloud 的持续同步机制会使得这些文件夹中的部分文件持续处于被上传且不可用状态.今天小编就给大家带 ...

  2. 阻止iCloud同步node_modules目录

    使用包管理软件总会生成这么一个小文件巨多,原本没什么,但同步起来风扇狂转的目录. 阻止iCloud同步某个文件/目录 为文件或目录改名,使其名称中包含'.nosync'即可. 但又不能直接更改node ...

  3. iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)

    layout: post #iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件) title: iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件) #时间配置 d ...

  4. icloud同步指定文件夹停止同步操作方法【图文】

    使用iCloud的过程中,难免遇到有些文件夹你不希望同步.比如游戏制作,视频剪辑等的工程文件,iCloud的持续同步机制会使得这些文件夹中的部分文件持续处于被上传且不可用状态. icloud同步指定文 ...

  5. 询问HTG:单向文件同步,缺少启动管理器以及iTunes与Android同步

    Once a week we dip into our reader mailbag and answer your pressing tech questions. Today we're look ...

  6. Microsoft Store应用商城上架「正式版」苹果iCloud同步客户端

    什么是 Windows 版 iCloud? 借助 Windows 版 iCloud,您可以从任何设备访问照片.通讯录.日历.文件等.iCloud 可以储存您的内容,并自动使这些内容在所有设备上保持最新 ...

  7. iOS开发 iap、GameCenter、iCloud、Passbook系统服务开发调用

    iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: ...

  8. ios不能保存png_管理各种iOS设备文件的管理软件

    想要快捷方便地管理自己iOS上的各种文件吗?这款名为MediaTrans for Mac的iOS设备管理软件能够为大家实现这一切.这款软件拥有各类实用的快捷功能够有效的帮助用户对ios上的文件进行有效 ...

  9. icloud 如何同步_如何使用iCloud同步联系人,提醒等

    icloud 如何同步 If you use a Mac, iPhone, or iPad, you might have wondered what iCloud is using all that ...

最新文章

  1. UILabel 高度的自适应与获取
  2. java中oracle.链接,java连接Oracle数据库的方法解析
  3. hbase中列簇和列_为什么不建议在hbase中使用过多的列簇
  4. Shell编程之多命令顺序执行和管道符
  5. TabTopUnderLineLayout【自定义顶部选项卡(带下划线)】
  6. Bootstrap 文档类型
  7. 华为公开折叠屏新专利:Mate X2有望首发搭载
  8. oracle 开启事务_javaSE第十四部分 JDBC(2)mysql事务和JDBC实现事务
  9. JDBC 学习笔记(三)—— 数据源(数据库连接池):DBCP数据源、C3P0 数据源以及自定义数据源技术...
  10. 数据规划(python实现数独自动算法之三)
  11. asuswrt 单臂路由_Padavan(老毛子) 最简单臂路由组网 VLAN 设置
  12. u8反启用固定资产_U8和T3固定资产没有启用不能结账的处理方法
  13. JS计算今天在本月第几周
  14. 一天一阔阔儿ZYNQ的linux移植完整版(Linux环境搭建以及内核编译)
  15. Android 身份证号码、手机号码以及邮箱账号 的中间隐藏显示
  16. 类和对象的定义和关系
  17. 数据库异常状态:Recovery Pending,Suspect,估计Recovery的剩余时间
  18. 关于UNITY3d摄像机跟随人物转动的脚本
  19. oracle 建库后 多路径,oracle数据库的多路径归档
  20. BI在连锁零售业应用

热门文章

  1. ipad iphone开发_如何在iPhone或iPad上查看照片的EXIF元数据
  2. pytorch + AMD卡 (docker快速构建A卡pytorch环境, 5分钟不折腾版)
  3. 玩游戏与计算机有什么关系,i5和i7差别大吗?玩游戏有什么区别?
  4. B2G OS(FireFox OS) Architecture
  5. 【LaTeX】论文写作之表格插入(数模、美赛、学位论文、英文SCI论文写作通用)
  6. openjudge 1.5.31 开关灯
  7. python绘制频谱图,在音频分析中绘制频谱图
  8. Redis 实现分布式缓存
  9. MySQL单表查询例题
  10. java 幂取模_计算一个数与2的n次方取模