(iCloud) 如何以编程方式备份​​/恢复 iTunes 等所有应用程序的数据?

Posted

技术标签:

【中文标题】(iCloud) 如何以编程方式备份​​/恢复 iTunes 等所有应用程序的数据?【英文标题】:(iCloud) How to programmatically Backup/Restore data for all Apps like iTunes does? 【发布时间】:2014-08-14 16:01:10 【问题描述】:

我想备份和恢复文件(或其他类型的信息,如键值、基于 SQL 的事务的信息。)不仅适用于我的应用程序,还适用于使用 iCloud 的所有其他应用程序。

我刚接触 iCloud,只阅读了一些文档,但似乎 iCloud API 仅适用于单个应用程序边界(当然我知道有一个选项可以在“组”应用程序之间共享信息)。

我想做的是备份和恢复几乎所有内容。我怎样才能做到这一点? (有一些应用程序这样做像 http://www.copytrans.net/copytranscontacts.php http://www.macrumors.com/2012/05/18/elcomsofts-phone-forensics-software-offers-near-real-time-access-to-icloud-backups/)

我检查了一些移动应用程序文件存储在“~/Library/Application\ Support/MobileSync/Backup”目录中,但实际上存储在 iCloud 中的所有文件中只有一些文件。

我测试了 CloudKit,但它只控制了 App 自己的数据。

提前致谢。

【问题讨论】:

@rmaddy 我是这么认为的,但是有应用程序从 iCloud 导入/导出联系人。通过分析 iCloud.com 网站的联系人和提醒,似乎有一些 HTTP 逆向工程解决方案。在你否决某人的问题无用之前,最好考虑另一种可能性。我看到了詹克森的回答? ***.com/questions/10661623/… 我希望看到任何肯定的答案。谢谢 访问联系人(公共 API)和所有应用程序数据是有区别的!就数据隐私而言,您的建议只是一个很大的禁忌。它不起作用,这是有充分理由的。 @Eiko,谢谢。我知道你的观点。我想我没有说清楚。再次感谢。 【参考方案1】:

考虑到这一点时要记住的一件事是,iTunes 实际上不会从 iCloud 备份或恢复任何内容。 ios 设备自行完成:有一个守护进程正在运行,如果启用了 iCloud 备份,它将直接备份到 iCloud,而无需与 iTunes 对话。无需与 iTunes 交互即可完成恢复。

接下来,正如@rmaddy 指出的那样,您设备上的应用程序无法访问其他应用程序的文件,因此您将无法从设备上做您想做的事情。如果您想通过在 PC/Mac 上运行的配套应用程序来执行此操作,那么它可能是可能的,但这将取决于您确切您需要/想要什么。

回复:联系人。应用程序可以访问地址簿,从而可以同步/上传其内容。应用程序还可以访问其他一些共享数据,例如照片库。这与您最初提出的“为所有应用程序备份/恢复数据”的请求相去甚远。

回复:下载 iCloud 备份。那些日子下载并不是什么大问题(披露:我是那个取证工具的作者,用于下载你提到的 iCloud 备份)。甚至还有一个open-source code。然而,下载恢复是两个截然不同的过程。具体来说,您可以下载,但您的应用没有足够的权限来就地写入文件。

希望这有助于解决问题。

【讨论】:

感谢 Andrey 的所有澄清。 Andrey,我可以使用 iCloud.com Web api 备份/恢复通讯录、提醒事项、便笺。是的,感谢您和 Eiko 的澄清以及我的个人研究,我理解您所说的要点。这里又来了一个问题。如果你可以在云端下载 iPhone 备份,也许我可以将任何新的备份数据上传到云端? 是的,它应该是可行的(但未记录)。不过,我还没有做过或研究过这个。 再次感谢@Andrey

以上是关于(iCloud) 如何以编程方式备份​​/恢复 iTunes 等所有应用程序的数据?的主要内容,如果未能解决你的问题,请参考以下文章

WPF - 如何以编程方式备份​​/恢复 LocalDB - ClickOnce

我如何知道是不是启用了 iCloud 备份?

如何备份系统,如何恢复系统。

以编程方式从 iCloud 帐户获取图像到 Android 应用程序

将完整的 CoreData 上传(备份)到 iCloud Drive 并在需要时恢复

在我们的应用程序中以编程方式禁用 Documents 目录的备份