ios获取唯一设备ID的方案

当app或者另外来源于同一开发商的app被安装到同一设备上,这个UUIDString会保持一致。当用户删除掉设备上所有同一开发商的app后,重新安装其中某一个app,这时候所获取到的UUIDString就会发生变化。因此,不管app存储将这个UUID存储到哪里,你都应该手动处理这种改变。

解决方案就是能所生成的UUIDString存储到KeyChain中,使用同一个access group、同一个identifier。每次获取UUID,都先从KeyChain中获取,若为空,则通过UIDevice获取UUIDString并存储到KeyChaing,代码版本如下:

  • (NSString *)UUID {
    KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"DujianchaoAppID" accessGroup:@"com.dujianchao.test.group"];
    NSString *UUID = [wrapper objectForKey:(__bridge id)kSecValueData];

    if (UUID.length == 0) {
    UUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    [wrapper setObject:UUID forKey:(__bridge id)kSecValueData];
    }

    return UUID;
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容