键扣

iOS 将密码,加密密钥,证书和身份等私人信息存储在名为 Keychain 的安全存储区域中。该存储区域完全由称为 Secure Enclave 的协处理器管理,该协处理器嵌入在应用处理器内。由于钥匙串是在 iOS 上沙箱化的,因此钥匙串项目可能只能由首先放置它们的应用程序检索。

在某些情况下,你必须打开 Xcode 功能中的钥匙串共享以避免错误。

为了与钥匙串交互,我们使用称为 Keychain Services 的 ac 框架。有关更多信息,请参阅 Apple 的 Keychain Services Programming Guide

由于钥匙串服务低于 Foundation 级别,因此仅限于使用 CoreFoundation 类型。因此,大多数对象在内部表示为 CFDictionarys,其中 CFStrings 作为其键,并且各种 CoreFoundation 类型作为其值。

虽然 Keychain Services 作为 Security 框架的一部分包含在内,但导入 Foundation 通常是一个不错的选择,因为它在后端包含一些辅助函数。

此外,如果你不想直接处理 Keychain 服务,Apple 会提供 Generic Keychain Swift 示例项目,该项目提供在后台使用 Keychain Services 的 Swift 类型。