CodableKeychain 1.0.0

CodableKeychain 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年2月
SPM支持 SPM

Todd Kramer 维护。



CodableKeychain

CocoaPods Version Swift Platform Swift Package Manager compatible Carthage compatible

概览

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

  1. 请确保已安装最新版本的 CocoaPods。

  2. 将 CodableKeychain 添加到您的 Podfile 中

use_frameworks!

pod 'CodableKeychain', '~> 1.0.0'
  1. 运行 pod install

Swift 包管理器

Swift 包管理器是 Apple 的官方 Swift 框架包管理器。要使用 Swift 包管理器安装

  1. 将 CodableKeychain 添加到您的 Package.swift 文件中
import PackageDescription

let package = Package(
    name: "MyAppTarget",
    dependencies: [
        .Package(url: "https://github.com/toddkramer/CodableKeychain", majorVersion: 1, minor: 0)
    ]
)
  1. 运行 swift build

  2. 生成 Xcode 项目

swift package generate-xcodeproj

Carthage

Carthage 是 Cocoa 项目的去中心化依赖关系管理器。要使用 Carthage 安装 CodableKeychain

  1. 确保已经安装了 Carthage

  2. 将 CodableKeychain 添加到您的 Cartfile

github "toddkramer/CodableKeychain" ~> 1.0.0
  1. 运行 carthage update添加适当的框架