获取不变的uuid

在寻找设备唯一标识符的过程中,遇到UUID易变的问题。通过启用钥匙串分享,结合代码实现,确保即使卸载应用、开启广告限制或系统升级,同一设备的UUID始终保持一致。详细步骤包括设置钥匙串权限、添加Key、实现Swift代码。该方法不适用于越狱设备,但对于大多数情况,是目前最佳解决方案。
摘要由CSDN通过智能技术生成

获取UUID的方法有很多,但是都会因为各种原因改变

/**  卸载应用重新安装后会不一致*/
+ (NSString *)getUUID{
    CFUUIDRef uuid = CFUUIDCreate(NULL);
    NSString *UUID = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid);
    CFRelease(uuid);
    return UUID;
}
 
/**  卸载应用重新安装后会不一致*/
+ (NSString *)getUUID{
    return [UIDevice currentDevice].identifierForVendor.UUIDString;;
}
 
/** 不会因为应用卸载改变 
  * 但是用户在设置-隐私-广告里面限制广告跟踪后会变成@"00000000-0000-0000-0000-000000000000"
  * 重新打开后会变成另一个,还原广告标识符也会变
  */
+ (NSString *)getUUID{
    return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}


作为设备唯一的标识符,一言不合就变了肯定是不行的呀

在产品汪的逼迫下,在我不懈的努力下,我终于找到一个可以一直保持一致的方法。第一次获取成功后保存到钥匙串,然后每次使用都通过钥匙串去拿。

第一步,打开应用的钥匙串权限

Target - Capabilities - KeychainSharing - ON

添加 com.mycompany.myapp.usernamepassword(这个key随便设置)

第二步,复制粘贴代码,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值