mirror of
https://github.com/zhigang1992/UICKeyChainStore.git
synced 2026-01-12 22:53:17 +08:00
0b3451c5a51535bb4eb75d723925369d0bad995a
UICKeyChainStore
UICKeyChainStore is a simple wrapper for Keychain on iOS and OS X. Makes using Keychain APIs as easy as NSUserDefaults.
Looking for the library written in Swift?
Try KeychainAccess
KeychainAccess is next generation of UICKeyChainStore
Installation
CocoaPods
pod 'UICKeyChainStore'
Manual Install
- Add
Security.frameworkto your target. - Copy files in Lib (
UICKeyChainStore.handUICKeyChainStore.m) to your project.
Usage
Using convienient class methods
Add items using default service name (=bundle identifer).
[UICKeyChainStore setString:@"kishikawakatsumi" forKey:@"username"];
[UICKeyChainStore setString:@"password1234" forKey:@"password"];
//=> ["username" = "kishikawakatsumi", "password" = "password1234"]
Or specify the service name.
[UICKeyChainStore setString:@"kishikawakatsumi" forKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore setString:@"password1234" forKey:@"password" service:@"com.kishikawakatsumi"];
Remove items.
[UICKeyChainStore removeItemForKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore removeItemForKey:@"password" service:@"com.kishikawakatsumi"];
To set nil value also works remove item for the key.
[UICKeyChainStore setString:nil forKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore setString:nil forKey:@"password" service:@"com.kishikawakatsumi"];
=====
Using store object, easier to edit multiple items
Instantiate store object with default service name.
UICKeyChainStore *store = [UICKeyChainStore keyChainStore];
Or specify the service name.
UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];
Add items and save.
[store setString:@"kishikawakatsumi@mac.com" forKey:@"username"];
[store setString:@"password1234" forKey:@"password"];
[store synchronize]; // Write to keychain.
Remove items.
[store removeItemForKey:@"username"];
[store removeItemForKey:@"password"];
[store synchronize]; // Write to keychain.
=====
Object Subscripting
UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];
store[@"username"] = @"kishikawakatsumi@mac.com";
store[@"password"] = @"password1234";
[store synchronize];
Debug print
UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];
NSLog(@"%@", store); // Print all keys and values for the service.
Easy as that. (See UICKeyChainStore.h for all of the methods.)
License
UICKeyChainStore is available under the MIT license. See the LICENSE file for more info.
Languages
Objective-C
97.9%
Ruby
2.1%