强烈建议不要将敏感数据存储在UserDefaults
中,例如应用内购买或明显的数据,例如密码。即使是高分数等数据也最好保存在钥匙串中,以防止作弊。
我认为苹果文档的这一部分已经过时,应该更改,因为UserDefaults
不是存储敏感数据的方式,而应用内购买绝对是我的看法。
只需在UserDefaults
中保存基本数据,如语言设置、音频设置等。
如果您想保存敏感数据,应使用Keychain。我认为Keychain API使用起来相当棘手,但是GitHub上有一个很棒的助手可供使用,它支持CocoaPods和SwiftPackageManager,并由作者积极维护。
https://github.com/kishikawakatsumi/KeychainAccess
我曾经使用的另外两个项目,不幸的是似乎已经不再得到支持。
https://github.com/jrendel/SwiftKeychainWrapper
https://github.com/matthewpalmer/Locksmith
需要记住的一件事是,钥匙串即使您删除了应用程序,数据仍然存在,这实际上是一件好事。
所有功劳归于各自包装器的作者。
希望这有所帮助。
KeychainWrapper.swift
(和法律声明)复制到我的项目中,对吧?顺便问一下:那个包装器有多可靠?我的项目还在开发阶段——引入不是我自己编写的关键代码现在是巨大的风险... - Rasto