【IOS】保存用户唯一ID
来源:互联网 发布:精仿rmb货到付款淘宝 编辑:程序博客网 时间:2024/05/21 10:27
iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。从ios 3。0开始,跨程序分享keychain变得可行。
SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码、账户进行访问,包括读取、删除和设置。SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes。
项目地址:https://github.com/samsoffes/sskeychain
在工程中加入SSKeyChain
- 在工程中加入Security.framework框架。
- 把SSKeychain.h和SSKeychain.m加到项目文件夹。
使用SSKeyChain
通过以下类方法来使用SSKeyChain(请查看SSKeyChain.h):
+ (NSArray *)allAccounts;
+ (NSArray *)accountsForService:(NSString *)serviceName;
+ (NSString *)passwordForService:(NSString *)serviceNameaccount:(NSString *)account;
+ (BOOL)deletePasswordForService:(NSString *)serviceNameaccount:(NSString *)account;
+ (BOOL)setPassword:(NSString *)password forService:(NSString*)serviceName account:(NSString *)account;
文档
在Xcode中安装SSKeyChain的帮助文档需要以下步骤:
- 打开菜单 Xcode -> Preferences
- 选择 Downloads
- 选择 Documentation
- 点击底部的加号按钮,并输入以下URL: http://docs.samsoff.es/com.samsoffes.sskeychain.atom
- 点击”SSKeyChain Documentation”旁边的install按钮。 (如果你看不到它,也没有提示任何错误,请重启Xcode)
确保在Organizer中可选的docset中能够看到SSKeychain。
此外,可以在线查看SSKeychain Documentation。
调试
如果无法保存钥匙串,请使用SSKeychain.h中提供的错误代码,例如:
NSError *error = nil;
NSString *password = [SSKeychainpasswordForService:@"MyService" account:@"samsoffes"error:&error];
if ([error code] == SSKeychainErrorNotFound) {
NSLog(@"Passwordnot found");
}
显然,你对做这个应该很熟悉了。访问钥匙串是件痛苦的事情,你要随时检查它的每个错误和失败。SSKeychain并没有使它(钥匙串)变得更稳定,它仅仅是繁琐的C APIs封装。
示例代码
保存一个UUID字符串到钥匙串:
CFUUIDRef uuid = CFUUIDCreate(NULL);assert(uuid != NULL);CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid);
[SSKeychain setPassword: [NSString stringWithFormat:@"%@", uuidStr]
forService:@"com.yourapp.yourcompany"account:@"user"];
然后,从钥匙串读取UUID:
NSString *retrieveuuid = [SSKeychainpasswordForService:@"com.yourapp.yourcompany"account:@"user"];
注意: setPassword和passwordForSevice方法中的services 和 accounts 参数应该是一致的。
- 【IOS】保存用户唯一ID
- 【IOS】保存用户唯一ID
- IOS 设备标示 唯一ID 识别用户
- 实际用户ID 有效用户ID 保存设置用户ID
- iOS设备唯一标识保存
- 保存的设置用户ID
- 分表时如何获取用户的唯一ID
- linux 用户id 有效用户id 保存设置id
- UNIX 实际用户id 有效用户id 保存设置id
- iOS 如何生成唯一的设备ID
- IOS中系统唯一标识ID
- ios设备唯一ID的替换解决方案
- IOS中系统唯一标识ID
- IOS中系统唯一标识ID
- IOS中系统唯一标识ID
- IOS中系统唯一标识ID<一>
- IOS中系统唯一标识ID
- iOS开发中获取设备唯一ID
- mysql日期和字符相互转换
- example site
- 深入理解linux网络技术之驱动层
- spring过滤器配置
- QUML建模第一层:角色-业务图实现愿景(3)
- 【IOS】保存用户唯一ID
- 计时器,锁屏广播事件,widget小控件,
- zookeeper遍历和设置acl
- Struts2配置(struts.xml)详解
- doc下 mysql命令总结
- ORACLE 游标
- ffffffffffffffffff
- 如何为您的ADC选择最合适的基准电压源和放大器
- HDU 4920 Matrix multiplication(矩阵乘法)