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/
【总监】十二春秋之,[email protected]
【Master】zelo,[email protected]
【运营】狼行天下,[email protected];****
【产品设计】流浪猫,[email protected]
【体验设计】兜兜,[email protected]
【iOS】淘码小工,[email protected]iMcG33K,[email protected]
【Android】人猿居士,[email protected];思路的顿悟,[email protected]
【java】首席工程师MR_W,[email protected]
【测试】土镜问道,[email protected]
【数据】喜乐多,[email protected]
【安全】保密,你懂的。

你可能感兴趣的:(IOS 获取手机UUID,卸载UUID会变化)