iTunes 是不是备份核心数据?

Posted

技术标签:

【中文标题】iTunes 是不是备份核心数据?【英文标题】:Does iTunes backup core data?iTunes 是否备份核心数据? 【发布时间】:2015-03-31 09:03:32 【问题描述】:

我对 iCloud 中的备份文件和数据进行了一些研究,我想知道如果我不使用任何 iCloud 功能,Core Data 是否会保存在 iTunes 备份中。

所以我得到了一个应用程序,其中最近的服务器连接保存在核心数据中,以将其填充回 UITableView。如果我使用 iTunes 进行设备备份并稍后在另一台设备上恢复它,是否仍会显示最近的连接?

我找到的所有问答都没有明确回答这个问题。

除此之外还有一个问题:是否可以使用正在开发的应用程序尝试这些 iTunes 备份的东西?

【问题讨论】:

【参考方案1】:

这取决于您保存核心数据数据库的位置。

LibraryDocuments 目录通常由 iTunes(和 iCloud)、tmpCaches 没有备份。

见:Apple Documentation - ios Standard Directories: Where Files Reside

AppName.app 这是应用程序的捆绑包。此目录包含应用程序及其所有资源。 您无法写入此目录。为防止篡改,捆绑目录在安装时进行签名。写入此目录会更改签名并阻止您的应用程序启动。但是,您可以获得对存储在应用程序包中的任何资源的只读访问权限。有关详细信息,请参阅资源编程指南iTunes 不备份此目录的内容。但是,iTunes 确实会对从 App Store 购买的任何应用程序进行初始同步。

文件/ 使用此目录来存储用户生成的内容。该目录的内容可以通过文件共享提供给用户;因此,他的目录应该只包含您可能希望向用户公开的文件。该目录的内容由 iTunes 备份。

文档/收件箱 使用此目录访问外部实体要求您的应用打开的文件。具体来说,Mail 程序将与您的应用程序关联的电子邮件附件放置在此目录中。文档交互控制器也可以在其中放置文件。 您的应用可以读取和删除此目录中的文件,但不能创建新文件或写入现有文件。如果用户尝试编辑此目录中的文件,您的应用必须在进行任何更改之前静默地将其移出该目录。iTunes 会备份此目录的内容。 p>

图书馆/ 这是任何非用户数据文件的***目录。您通常将文件放在几个标准子目录之一中。 iOS 应用程序通常使用 Application Support 和 Caches 子目录;但是,您可以创建自定义子目录。 将库子目录用于您不希望向用户公开的任何文件。您的应用不应将这些目录用于用户数据文件。Library 目录(Caches 子目录除外)的内容由 iTunes 备份。 有关 Library 目录及其常用子目录的更多信息,请参阅 Library Directory Stores App-Specific Files。

tmp/ 使用此目录来编写不需要在应用程序启动之间保留的临时文件。当不再需要文件时,您的应用应从该目录中删除文件;但是,当您的应用未运行时,系统可能会清除此目录。iTunes 不备份此目录的内容。

【讨论】:

是的,我已经在苹果文档中发现了这一点,但这是我第一次使用 coredata。我在现有项目之一中添加了一个数据模型,并通过 NSFetchedResultsController 从中获取数据。所以我来到了默认保存coreData的问题 看看你的代码。它应该在某处提及.sqlite。这是创建存储数据库的路径的位置。由于您不知道您的数据库很可能存储在 Documents 中。 .sqlite 就是我要找的东西,谢谢。我这里的代码是let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) 所以是的,看起来像文档^^

以上是关于iTunes 是不是备份核心数据?的主要内容,如果未能解决你的问题,请参考以下文章

itunes备份显示电脑内存不足怎么办啊

iTunes 文件共享说明

iOS的iTunes备份探究

CloudKit 获取用户 iTunes 备份

Mac实用教程:如何从加密的iTunes备份中恢复数据?

Mac技巧分享:如何从加密的iTunes备份中恢复数据?