如何安全地升级/备份使用核心数据的现有应用程序?

Posted

技术标签:

【中文标题】如何安全地升级/备份使用核心数据的现有应用程序?【英文标题】:How to safely upgrade/backup an existing app that uses core data? 【发布时间】:2012-08-15 14:30:44 【问题描述】:

我有一个几个月前开发的应用程序,并希望继续升级该应用程序。

从那时起,该应用程序有大约 6 个月的数据,我想在升级应用程序之前备份该应用程序的状态(我担心我会以某种方式删除/搞砸如果我安装了新版本的应用程序,核心数据持久存储。)我不记得我是从 iTunes 商店还是从 xCode 安装获得的应用程序。

我已经使用 iTunes 备份了我的 iPhone,并且目前正在使用一个应用程序,该应用程序的应用程序标识符与生产应用程序不同:

包含我要保存数据的实时应用称为“应用” 该应用的开发中版本名为“app_test”

设备上有两个版本的应用。

我想看看我为 app_test 创建的更改在具有真实数据的实时生产应用程序上的效果。

我需要采取哪些步骤来确保在出现问题时能够恢复我的应用数据?

我将 xcode 的项目包 id 从“app_test”更改为“app”是否足以查看生产中的更改?

感谢您的意见,我非常重视这些数据并且不想丢失它!

【问题讨论】:

【参考方案1】:

第一个重点 - 不要将您的“app_test bundle”标识符更改为“app” - 这将覆盖您手机上的实时应用程序,您的数据将消失(嗯,您至少必须从备份中恢复...)

您应该能够使用诸如“iPhone Explorer”之类的 OSX 程序来浏览已连接的手机 - 找到您的应用,然后查看是否可以获取 .sqlite 文件(可能在应用的文档或 libray 文件夹中) - 将其复制到您的桌面。

现在您已经有了实时数据库,您有多种选择。您还可以获取 app_test 数据库,并使用您喜欢的 sql 工具合并内容 - 或将实时 .sqlite 文件导入您的 app_test xcode 项目,并告诉 app_test 将其用作数据源。

如果您需要对数据库的写入权限,则必须首先将实时 .sqlite 从 app_test 包复制到文档或库文件夹。

【讨论】:

以上是关于如何安全地升级/备份使用核心数据的现有应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何实现增量备份?

openfire升级指南

如何升级mysql数据库,需要哪些步骤?

tomcat 安全漏洞处理,线上升级tomcat

iOS7.1 现有应用核心数据更新失败

如何使用现有模型和迁移恢复 Django 项目的转储数据库备份?