iOS获取设备唯一标识和UUID方案

68 篇文章 1 订阅

iOS获取设备唯一标识和UUID方案

以下获取uuidString的方法,每次重启都会改变。

UIDevice.current.identifierForVendor?.uuidString

但是项目的要求是不变,并且删除app 只有也有有保留的需求。显然这个无法满足我们的需求。

使用KeyChain解决

来了解一下一KeyChain。keychain(钥匙串)存储在iOS系统中,并且恢复iPhone会使keychain的内容也恢复.但是删除App是不会影响keychain.
不同App之间Keychain是不能相互访问的,但是可以通过配置keychain-sharing来解决。

使用KeyChain保存到系统钥匙串中,然后再去获取相应的值,就可以保证删除app新装的app也能获取到第一次安装存储的值。显然是可以满足我们的需求的。

下面使用KeychainAccess的第三方类库来实现。

1、pod 引入包

  pod 'KeychainAccess'

2、自己写的工具类

//
//  UUIDTool.swift
//  KeychainDemo
//
//  Created by wumeng on 2022/3/10.
//

import UIKit

import KeychainAccess

struct UUIDTool{

    static let KEYCHAIN_SERVICE:String = "com.wumeng.KeychainDemo"
    static let IMEI_KEY:String = "IMEI"
    
    static func getUUID() -> String{
        let keychain = Keychain(service: KEYCHAIN_SERVICE)
        var uuid:String = ""
        do {
            uuid = try keychain.get(IMEI_KEY) ?? ""
        }
        catch let error {
            print(error)
        }
        print("1111 \(uuid)")
        if uuid.isEmpty {
            uuid = UUID().uuidString
            do {
                try keychain.set(uuid, key: IMEI_KEY)
            }
            catch let error {
                print(error)
                uuid = ""
            }
        }
        return uuid
    }
    
}

开箱即用!

使用方法:

UUIDTool.getUUID()

大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值