iOS开发关于钥匙串、UUID、打包版本号。编译版本号获取小结
来源:互联网 发布:在淘宝网上买汽车配件 编辑:程序博客网 时间:2024/04/29 21:55
iOS开发关于钥匙串、UUID、打包版本号。编译版本号获取小结
做一些本地要保存一些用户的信息的时候,经常会用到手机的唯一标识;比如希望用户更新、卸载之后再重装,这些操作之后用户的信息还能保存在用户的手机中,其实就是我们很希望能够获取设备的唯一标识,很多iPhone和iOS开发都知道手机的imei号可以作为唯一标识,但是很抱歉,开发者是无法获取的,很多人也知道UDID,UDID也是苹果给每台设备的标识,可以作为设备的唯一标识,但是没有API可以获取到UDID的,苹果给开发者暴露的接口有一个标识,那就是UUID。我们的app刚开始也是用的UUID标识,但是发现UUID在更新和卸载之后,再获取之后就会发生变化,只可以在某段时间作为唯一标识来使用,用户从App Store上更新产品或者卸载重装之后,设备信息也会随着更新,这个根本满足了产品对于唯一的要求,那么,钥匙串可以解决这个问题!!!
来来来!上代码!
//这个方法是获取设备的UUID,也就是删除、更新就会变NSString *uuid = [[NSUUID UUID] UUIDString];
顺便说一下版本号:
很多应用有关于应用的页面介绍,会介绍版本号,有时取出来的版本号你会发现和App Store上的不一样,版本号有编译版本和打包版本区分:
获取项目的上线打包版本号:(这些信息在info.plist中都有)和App Store中一样的
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; //@"CFBundleShortVersionString"这些key值可以在把info.plist文件用文本打开后看到
获取项目的编译版本号
//这两个方法都可以获取到app的编译版本号NSString *buildVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleVersionKey];//方法二 NSString *buildVersion1 = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
从钥匙串中读取UUID
钥匙串存在于每台设备中,每个应用都可以给钥匙串中写入自己要存储的数据,但是也只有自己的应用才能从钥匙串中读出之前存入的数据
方法中的passwordForService: 和 setPassword: forService: 中service的值应该要一致的。最好保存为app的Bundle identifier,这样在钥匙串中才具有唯一性,两个方法的account也要一致的。
//从钥匙串读取UUID: NSString *retrieveuuid = [SSKeychain passwordForService:@"com.uuidDeviceApp.urthinker"account:@"user"]; if (retrieveuuid.length == 0) { //给钥匙串中存UUID CFUUIDRef uuid1 = CFUUIDCreate(NULL);assert(uuid1 != NULL);CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid1); [SSKeychain setPassword: [NSString stringWithFormat:@"%@", uuidStr] forService:@"com.uuidDeviceApp.urthinker"account:@"user"]; retrieveuuid = [SSKeychain passwordForService:@"com.uuidDeviceApp.urthinker"account:@"user"]; } NSLog(@"从keyChain中取出的uuid-> %@",retrieveuuid);}
要使用钥匙串,还需要导入系统的一个框架Security.framework。
导入方式:
导入框架之后还得导入一个第三方框架:
在github搜索SSKeychain引入即可
这里已经下载好了 链接: https://pan.baidu.com/s/1eR3xDPg 密码: w18m 直接下载出来放入项目中就可以了。
- iOS开发关于钥匙串、UUID、打包版本号。编译版本号获取小结
- ios开发---获取App版本号
- ios开发获取应用版本号
- iOS开发 获取app版本号
- iOS开发 获取应用名称和版本号
- iOS开发,获取手机型号,系统版本号,
- iOS开发,获取手机型号,系统版本号
- iOS开发笔记之获取App版本号
- 获取iOS系统版本号
- ios 获取系统版本号
- iOS 获取应用版本号
- ios获取版本号等
- ios获取app版本号
- IOS 获取版本号
- ios获取app版本号
- IOS 获取系统版本号
- ios获取设备版本号
- iOS 获取appstore 版本号
- 【c++】关于时间复杂度和空间复杂度的相关问题
- HttpServletResponse进一步学习
- 在 Django/Flask 开发服务器上使用 HTTPS
- SpringMVC中使用Interceptor拦截器
- Linux系统修改编码
- iOS开发关于钥匙串、UUID、打包版本号。编译版本号获取小结
- 浅谈敏捷开发和迭代开发中的建模
- Spring事务管理
- HHU LCM and Walk (DFS+数论)
- JavaScript跨域问题总结
- selenium常用方法
- 直播视频帧率低的原因分析
- MySql自学笔记
- AppScan安装出错:无法从.NET运行时安全策略中注销Appscan 解决方案