IOS 获取手机UUID,卸载UUID会变化

在做公司移动办公手机打卡功能时,公司要求一人只能绑定一台设备,来杜绝手机代打卡事件。所以在请求服务器接口时,我们传入了UUID这个参数,当第一次打卡时,后台把这个UUID保存到数据库。当以后打卡,服务器判断这个参数是否跟第一次绑定的UUID相同,不相同则认为你设备换了,不能打卡。

本来这个功能用的好好的,但是这段时间发现公司有的设备在卸载程序,再次安装移动办公的时候,它的UUID会变化,上网查了一下,确实会变化。

这就尴尬了。

解决方法是UUID还是通过下面方法获取

NSString *uuidVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSString *uuidStr = [uuidVendor stringByReplacingOccurrencesOfString:@"-" withString:@""];

不过在获取到这个UUID以后,保存到钥匙串中,这样的话,不管是否卸载程序,每次都先去钥匙串中取值,如果钥匙串中有值的话,直接使用。没有的话,再去获取设备UUID

钥匙串按我理解就是一个字典,里面就保存着UserName和Password,我是把userID当成用户名,把UUID当成password,如下:

// 取UUID 从钥匙串
 NSString *uuidFromKeyChain = [SFHFKeychainUtils getPasswordForUsername:g_loginUser.userName 
                        andServiceName:SERVICE_NAME error:nil];
 
 //把UUID存入到钥匙串
  [SFHFKeychainUtils storeUsername:g_loginUser.userName andPassword:uuidStr forServiceName:SERVICE_NAME updateExisting:1 error:nil];

这样就OK了


知行办公,专业移动办公平台https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com
【Master】zelo,616701261@qq.com
【运营】狼行天下,897221533@qq.com;****
【产品设计】流浪猫,364994559@qq.com
【体验设计】兜兜,2435632247@qq.com
【iOS】淘码小工,492395860@qq.comiMcG33K,imcg33k@gmail.com
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com
【java】首席工程师MR_W,feixue300@qq.com
【测试】土镜问道,847071279@qq.com
【数据】喜乐多,42151960@qq.com
【安全】保密,你懂的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容