在 iOS 13/14 上删除应用程序时是不是会擦除 UserDefaults?

Posted

技术标签:

【中文标题】在 iOS 13/14 上删除应用程序时是不是会擦除 UserDefaults?【英文标题】:Are UserDefaults wiped when deleting an app on iOS 13/14?在 iOS 13/14 上删除应用程序时是否会擦除 UserDefaults? 【发布时间】:2020-12-09 13:29:08 【问题描述】:

当我在没有任何其他框架的情况下使用纯 UserDefaults 并且 不是NSUbiquitousKeyValueStore 一起使用时,用户默认值是否会在从手机中删除应用程序后保留在 iCloud 中,并在重新安装时从 iCloud 中恢复那个应用?

我在文档中读到通常 UserDefaults 包含在(iCloud)备份中。因此,如果用户安装了该应用程序,该应用程序随后会存储一些 UserDefaults,用户进行 iCloud 备份,然后从该备份恢复手机,UserDefaults 应该会再次存在。

但是如果用户故意从他们的手机中删除我的应用程序,然后从商店重新安装它,UserDefaults 是否仍然存在(从 iCloud 恢复)或者它们是否会随着应用程序的删除而消失,并且不会在重新安装时返回?

用户是否必须另外从 iCloud 设置应用程序中删除我的应用程序的 iCloud 数据以摆脱 UserDefaults 或删除应用程序(不移动到应用程序库)?

我基本上想在用户从手机中删除应用程序后从零开始。

这在 ios 13 和 iOS 14 之间有什么不同吗?

【问题讨论】:

如果我是你,我会亲自测试一下,而不是听你从未见过面的人的意见。 【参考方案1】:

从设备中删除应用后,与该应用关联的所有本地数据也将被删除。这包括NSUserDefaults。但是,存储在在线服务中的任何数据都不会。例如,iCloud。如果用户/开发人员要求,该应用将再次获取数据。

在用户删除我的应用程序时UserDefaults 被删除之前,我遇到了一个问题。因此,仅出于教育目的,如果您不想丢失数据,也不想在线存储数据,请考虑使用Keychain

有关更多信息,您可以在这里找到它:Keychain

【讨论】:

在这种情况下,我确实希望数据丢失。 我在我的应用程序中验证了这一点:在 iOS 14 上删除应用程序(实际删除,不是应用程序库)确实会清除 UserDefaults,而删除并重新安装应用程序后钥匙串数据仍然存在。跨度>

以上是关于在 iOS 13/14 上删除应用程序时是不是会擦除 UserDefaults?的主要内容,如果未能解决你的问题,请参考以下文章

IOS 是不是会在存储容量不足时删除 WebSQL 数据库?

代号一中的存储持久性

自定义表格单元格 iOS 6

删除主机时,iOS 可达性无法识别

当云原生遇上边缘计算,会擦出什么样的火花?

当云原生遇上边缘计算,会擦出什么样的火花?