CodableKeychain
概览
CodableKeychain是一个Swift框架,用于将符合Codable
协议的对象保存到密钥链。
特性
- iOS 8.0+, macOS 10.10+, tvOS 9.0+, watchOS 2.0+
- 100% 测试覆盖率
- 方便地存储任何符合
Codable
的对象 - 使用Swift枚举指定项的可访问性(参见
Keychain.AccessibleOption
) - 将35个记录的密钥链错误代码转换为Swift枚举,以便轻松的错误处理(参见
KeychainError
)
用法
KeychainStorable
KeychainStorable
协议继承自 Codable
,用于定义可以使用 CodableKeychain 存储的模型。
注意: 如果您没有定义服务或访问组,CodableKeychain 会默认使用您应用程序的包标识符作为服务,并将访问组设置为
nil
。
import CodableKeychain
enum Constants {
static let service = "com.example.credentialservice"
static let accessGroup = "[APP_ID_PREFIX].com.example.TestKeychain"
}
struct Credential: KeychainStorable {
let email: String
let password: String
let pin: Int
let dob: Date
}
extension Credential {
var account: String { return email }
var accessible: Keychain.AccessibleOption { return .whenPasscodeSetThisDeviceOnly }
}
配置默认值
如果所有密钥链操作都将使用相同的服务和访问组,请使用以下方法来配置默认值
Keychain.configureDefaults(withService: Constants.service, accessGroup: Constants.accessGroup)
重置默认值
Keychain.resetDefaults()
存储
let credential = Credential(email: "[email protected]", password: "foobar", pin: 1234, dob: Date(timeIntervalSince1970: 100000))
do {
try Keychain.default.store(credential)
} catch let error {
print(error)
}
检索
do {
let credential: Credential? = try Keychain.default.retrieveValue(forAccount: "[email protected]")
} catch let error {
print(error)
}
安装
注意: CodableKeychain 需要 Swift 4(以及 Xcode 9)或更高版本。
使用 CodableKeychain 的目标必须支持嵌入型 Swift 框架。
CocoaPods
CocoaPods 是 Cocoa 项目的集中式依赖管理器。要使用 CocoaPods 安装 CodableKeychain
-
请确保已安装最新版本的 CocoaPods。
-
将 CodableKeychain 添加到您的 Podfile 中
use_frameworks!
pod 'CodableKeychain', '~> 1.0.0'
- 运行
pod install
。
Swift 包管理器
Swift 包管理器是 Apple 的官方 Swift 框架包管理器。要使用 Swift 包管理器安装
- 将 CodableKeychain 添加到您的 Package.swift 文件中
import PackageDescription
let package = Package(
name: "MyAppTarget",
dependencies: [
.Package(url: "https://github.com/toddkramer/CodableKeychain", majorVersion: 1, minor: 0)
]
)
-
运行
swift build
。 -
生成 Xcode 项目
swift package generate-xcodeproj
Carthage
Carthage 是 Cocoa 项目的去中心化依赖关系管理器。要使用 Carthage 安装 CodableKeychain
-
确保已经安装了 Carthage。
-
将 CodableKeychain 添加到您的 Cartfile
github "toddkramer/CodableKeychain" ~> 1.0.0
- 运行
carthage update
并 添加适当的框架。