在 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?的主要内容,如果未能解决你的问题,请参考以下文章