键扣
iOS 将密码,加密密钥,证书和身份等私人信息存储在名为 Keychain 的安全存储区域中。该存储区域完全由称为 Secure Enclave 的协处理器管理,该协处理器嵌入在应用处理器内。由于钥匙串是在 iOS 上沙箱化的,因此钥匙串项目可能只能由首先放置它们的应用程序检索。
在某些情况下,你必须打开 Xcode 功能中的钥匙串共享以避免错误。
为了与钥匙串交互,我们使用称为 Keychain Services 的 ac 框架。有关更多信息,请参阅 Apple 的 Keychain Services Programming Guide 。
由于钥匙串服务低于 Foundation
级别,因此仅限于使用 CoreFoundation
类型。因此,大多数对象在内部表示为 CFDictionary
s,其中 CFString
s 作为其键,并且各种 CoreFoundation
类型作为其值。
虽然 Keychain Services 作为 Security
框架的一部分包含在内,但导入 Foundation
通常是一个不错的选择,因为它在后端包含一些辅助函数。
此外,如果你不想直接处理 Keychain 服务,Apple 会提供 Generic Keychain Swift 示例项目,该项目提供在后台使用 Keychain Services 的 Swift 类型。