iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。
上面的demo主要就是对比keychain和NSUserDefaults。
NSUserDefaults在app卸载后,存储的数据也自动被删除了。
keychain在app卸载后,仍然保留存储的数据。
其用处个人认为:
1,可以用来记录用户的操作行为,记录用户是否第一次下载该app。
2,另外存私密信息。
3,在我的开发经验中,userDefaults经常在app crash了以后,会丢失部分或者全部数据。所以,我认为有些重要信息可以存在keychian中。
使用操作:
1,导入Security.framework,GSKeychain库(pod 'GSKeychain', '~> 1.0')
2,#import "GSKeychain.h",如下:
[[GSKeychain systemKeychain] setSecret:@"firstInstall" forKey:@"GSKeychainDemoInstalled"];
[[GSKeychain systemKeychain] secretForKey:@"GSKeychainDemoInstalled"]
demo:https://github.com/MartinLi841538513/GSKeychainDemo