iOS 中钥匙串服务的生命周期

Posted

技术标签:

【中文标题】iOS 中钥匙串服务的生命周期【英文标题】:lifecycle of keychain service in iOS 【发布时间】:2019-02-22 06:02:36 【问题描述】:

存储在钥匙串服务 API 中的项目的生命周期是什么?

我正在使用标准钥匙串服务来存储少量数据,但即使我卸载了应用程序并重新部署到模拟器上,该值似乎也没有被重置。

let query =  NSMutableDictionary(objects: [kSecClassGenericPassword,
                           key,
                           user,
                           value as Any,
                           kSecMatchLimit],
                  forKeys: [kSecClass as NSString,
                           kSecAttrService as NSString,
                           kSecAttrAccount as NSString,
                           kSecReturnData as NSString,
                           kSecMatchLimit as NSString
                           )

SecItemAdd(query as CFDictionary, nil)

另外,这与 iCloudkeychain 有何不同?有一个选项可以在查询中使用ksecattrsynchronizable 通过 icloud 进行同步。这是否意味着如果我们选择不通过 iCloud 同步它,它将成为本地存储在设备上的永久钥匙串项目?

【问题讨论】:

【参考方案1】:

您回答了自己的问题。

卸载应用时不会重置钥匙串中存储的项目。

它存储在那里,直到您明确删除它。

【讨论】:

对我来说更像是尝试和错误,我想知道它是如何工作的。 :)

以上是关于iOS 中钥匙串服务的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中收听 UIApplication 生命周期 iOS

iOS 生命周期

iOS:从头捋一遍VC的生命周期

iOS:捋一遍View的生命周期

Angular 5 中服务的生命周期是啥

iOS 应用程序生命周期