如何获取 iPhone 的 UDID?

11

我想获取iPhone设备的唯一设备ID,并且即使我在同一个设备上卸载应用并重新安装,该设备ID也不能更改。 我使用的是Swift 2.1.1和Xcode 7.2.1。 我尝试过以下代码,但都无效。

//第一种方法

let device_id = UIDevice.currentDevice().identifierForVendor!.UUIDString
print("unique device id: (device_id)")

//第二种方法

let dID = CFUUIDCreate(kCFAllocatorDefault)
let deviceID = CFUUIDCreateString(kCFAllocatorDefault, dID) as NSString
print("unique CFUUID id: (deviceID)")


你尝试过访问 https://dev59.com/gmcs5IYBdhLWcg3wUCYI#29832833 吗? - Amr Hossam
你解决了吗? - Badal Shah
5个回答

11

Swift 3.X的最新简单用法;

if let identifierForVendor = UIDevice.current.identifierForVendor {
    print(identifierForVendor.uuidString)
}

6
当应用程序被删除时,这将被重置... - Yaroslav Dukal
这对于每个应用程序都是不同的,而且每次我们删除并重新安装应用程序时都会发生变化。 - Smit Yash
2
这不是UDID...这是UUID。 - Sneha
1
我们需要UDID。它提供UUID。 - Govindharaj Murugan

6
尝试这个,
UIDevice.currentDevice().identifierForVendor

如果您需要一个字符串:

UIDevice.currentDevice().identifierForVendor.UUIDString
print(UIDevice.currentDevice().identifierForVendor().UUIDString()) //Print Log

链接已损坏。 - sweetfa

6

对我来说,这在Swift 3 / Xcode / iPhone7上运行良好。

let deviceUUID: String = (UIDevice.current.identifierForVendor?.uuidString)!

感谢您提供的Swift 3实现 - 真的很有帮助。 - nurnachman

2
请使用这个。
let UUID = CFUUIDCreateString(nil, CFUUIDCreate(nil))
 func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

let userDefaults = NSUserDefaults.standardUserDefaults()

if userDefaults.objectForKey("ApplicationUniqueIdentifier") == nil {
    let UUID = NSUUID.UUID().UUIDString
    userDefaults.setObject(UUID, forKey: "ApplicationUniqueIdentifier")
    userDefaults.synchronize()
}
return true

这将在Swift中正常工作。


1
print( UIDevice.currentDevice().identifierForVendor().UUIDString())

它对你有效吗?让我知道吧? - Yagnesh Dobariya
1
它是UUID而不是UDID。 - Sultan Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接