测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年11月 |
SwiftSwift 版本 | 3.0.1 |
SPM支持 SPM | ✗ |
由 Shinichiro Aska 维护。
KeyClip 是用 Swift 编写的另一个 Keychain 库。
KeyClip.save("access_token", string: "********") // -> Bool
let token = KeyClip.load("access_token") as String?
KeyClip.delete("access_token") // Remove the data
KeyClip.clear() // Remove all the data
KeyClip.exists("access_token") // -> Bool
必须兼容 NSJSONSerialization。
有效的 JSON 元素是 Dictionary,Array,String,Number,Boolean 和 null。
KeyClip.save("account", dictionary: ["name": "aska", "token": "******"]) // -> Bool
let dictionary = KeyClip.load("account") as NSDictionary?
KeyClip.save("data", data: NSData()) // -> Bool
let data = KeyClip.load("data") as NSData?
KeyClip.save("account", dictionary: account.dictionaryValue)
let account = KeyClip.load("account") { (dictionary) -> Account in
return Account(dictionary)
}
class Account {
let name: String
let password: String
init(_ dictionary: NSDictionary) {
self.name = dictionary["name"] as String
self.password = dictionary["password"] as String
}
var dictionaryValue: [String: String] {
return ["name": name, "password": password]
}
}
let success = KeyClip.save("password", string: "********")
if !success {
// Show Alert "Saving password to keychain failed"
}
KeyClip.save("password", string: "********") { error in
let status = error.code // OSStatus
// Show Alert "Saving failed \(error.localizedDescription)(\(error.code))"
}
KeyClip.printError(true)
let clip = KeyClip.Builder()
// kSecAttrService
.service(NSBundle.mainBundle().bundleIdentifier) // default
// kSecAttrAccessible
.accessible(kSecAttrAccessibleAfterFirstUnlock) // default
// kSecAttrAccessGroup
.accessGroup("XXXX23F3DC53.com.example.share") // default is nil
.build()
Entitlement.plist 的 keychain-access-groups 或 App Identifier。
KeyClip.defaultAccessGroup() // -> String (eg. XXXX23F3DC53.*)
KeyClip 采用 MIT 许可证发布。有关详细信息,请参阅 LICENSE。