从同一个 iphone 获取两个不同的设备 ID

Getting two different device IDs from same iphone

我的 iphone 收到不同的 UDID from itunes 并且以编程方式像这样

UDID:String = UIDevice.current.identifierForVendor!.uuidString

基本上我正在尝试为我的 iphone 获取一个唯一标识符,就像我们有 android 电话的 mac 地址一样。

一种最简单的方法是通过将 identifierForVendor 存储在钥匙串中来解决此问题。即使您卸载应用程序,密钥的值仍然保持不变。许多第三方库可用于执行此操作。其中之一 https://github.com/jrendel/SwiftKeychainWrapper.

func getGlobalUniqueIdentifierFromKeyChain()->String{

    let retrievedString: String? = KeychainWrapper.standard.string(forKey: "DeviceId")

    if  retrievedString == nil{
        if let deviceKey  = UIDevice.current.identifierForVendor?.uuidString{
            let _ = KeychainWrapper.standard.set(deviceKey, forKey: "DeviceId")
        }
    }

    if let globalID = KeychainWrapper.standard.string(forKey: "DeviceId"){
        return globalID
    }else{
        return UIDevice.current.identifierForVendor?.uuidString ?? ""
    }
}