如果在设备上部署了新版本的应用程序,是不是可以保留旧版本的数据?

Posted

技术标签:

【中文标题】如果在设备上部署了新版本的应用程序,是不是可以保留旧版本的数据?【英文标题】:Is it possible to retain data of the older version if a new version of app is deployed on device?如果在设备上部署了新版本的应用程序,是否可以保留旧版本的数据? 【发布时间】:2012-10-23 02:13:08 【问题描述】:

我是 ios 开发的新手,所以我的问题可能是 n00bish。我正在开发一款适用于 iPad 的应用程序,该应用程序下载 PDF 并存储在 Documents 目录中的设备 (iPad) 上,这样用户仍然可以阅读它们,如果他不是t 连接到 WiFi。我的问题是:如果有更新版本的应用程序可用并且用户安装了它,它会从设备中删除所有数据(在这种情况下是文档)吗?如果是,如何防止旧数据被删除?我在这个应用程序中使用 CoreData(如果这有帮助)

【问题讨论】:

您在文档文件夹中的数据应该保持不变,您甚至可以使用它来确定您的应用程序的先前版本是否已安装。但你可能会觉得这个链接很有趣:***.com/questions/5607655/… 【参考方案1】:

当用户安装任何应用的更新版本时,应用的沙盒会保持不变。仅替换应用程序及其资源包。因此,基本上,您存储在 DocumentsLibrary 中的所有内容在更新过程后都将保持原样。无法保证 Library/Cachestmp 中的文件会被保留,但无论如何这些文件应该只有临时文件。

【讨论】:

我对“您存储在文档或库中的任何内容都将保留在更新过程中”这样的说法感到困惑,因此,如果用户当前安装了带有“doc1”的 1.0 版","doc2" 在 Documents 目录中,并且他们稍后安装了 2.0 版本,他们是否仍然能够在 更新后找到 "doc1" 和 "doc2"?? 显然,如果你使用 CoreData 并且你的数据模型已经改变,那么你必须做一些编码来确保新版本可以读取旧数据。在测试过程中可能会忘记。

以上是关于如果在设备上部署了新版本的应用程序,是不是可以保留旧版本的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如果我在 API 级别 21 (5.0) 上制作应用程序,它是不是适用于较新版本的 android?

将新版本的数据库文件复制到设备上

如果我安装新版本的 Python,是不是应该重新安装每个模块?

新版本的内部库时是不是有可能收到警告?

重识Nginx - 05 热部署_不停机更换新版本的nginx

除非清除 Google Play 缓存,否则 Google Play 不会显示新版本的应用