ios - iOS 钥匙串(keychain)中的项目会在应用程序卸载并重新安装后继续存在吗?

标签 ios keychain

我正在寻找有关 iOS 钥匙串(keychain)项的文档。我的具体问题是钥匙串(keychain)项目是否会在应用程序卸载和重新安装周期中继续存在。 它似乎从 iOS 4(甚至可能是 iOS 3)开始就以这种方式工作,但我找不到任何来自 Apple 的文档说明这实际上应该以这种方式工作。

我想弄清楚的是,我是否可以相信(不是“希望”或“猜测”)钥匙串(keychain)中的项目会在应用程序卸载后继续存在。

编辑:我意识到这个问题有点不清楚,正如 Daij-Djan 所指出的那样。我正在寻找的是支持众所周知的行为的官方文档。

更新 2017-04-04:请参阅下面我的回答,iOS 10.3 测试版中的行为更改。它在 iOS 10.3 中照常工作,但在未来的版本中可能会发生变化。

最佳答案

我在 Apple 开发者论坛上四处搜寻,一位 Apple 开发者(eskimo1,又名 Quinn)在 2012-08-27 表示这是当前的行为,但据他所知还没有/记录/行为,所以这个将来可能会改变。他还表示,删除共享钥匙串(keychain)项总是很棘手,这也是该问题尚未得到解决的原因之一。

所以我想这让问题悬而未决:没有明确的答案。它没有记录,可以随时更改。依赖它可能会在未来引起问题。

2017-04-04 更新:

iOS 10.3 测试版中,应用程序的钥匙串(keychain)信息在卸载应用程序时会被删除,但此行为似乎已在最终 10.3 版本中被删除。在 Apple Documentation建议这即将改变,我们不应依赖应用程序卸载后钥匙串(keychain)访问数据的完整性。 另见 iOS 10.3 beta 3 doesn't persist data of KeychainItem .

关于ios - iOS 钥匙串(keychain)中的项目会在应用程序卸载并重新安装后继续存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911434/

相关文章:

ios - ios 中的钥匙串(keychain)是线程安全的吗?

ios - 如何在 swift 5 中缓存图像?

c# - 像 native 照片应用程序一样将图像裁剪为 "perfect"正方形

ios - 如何向 Interface Builder Gallery 添加控件?

iOS:已辞职的应用程序无法通过安全 API 访问钥匙串(keychain)

ios - iOS 钥匙串(keychain)服务与 iCloud 钥匙串(keychain)有何不同?

iOS KeyChain secItemAdd 崩溃

ios - ASTableNode setSelected 更改 ios 中 ASDisplayNode 的背景颜色

iphone - iOS 在两个 Controller 之间切换

swift - 在真实设备 iOS Swift 上进行单元测试时尝试生成随 secret 钥对时出错