【问题标题】:get UDID of IOS device programmatically? [duplicate]以编程方式获取 IOS 设备的 UDID? [复制]
【发布时间】:2015-10-17 14:17:19
【问题描述】:

我想以编程方式获取 iOS 设备的 UDID。我正在使用以下代码获取 iOS 设备的 UDID。

NSUUID *uuid = [NSUUID UUID];
NSString *uuidString = uuid.UUIDString;

但我得到的输出与我设备的实际 UDID 不同。

【问题讨论】:

  • 我想你可以在这篇文章stackoverflow.com/questions/13456996/…中找到你想要的东西
  • 是什么让您认为这会为您提供 UDID?只是一个偶然的希望,凭空摘取?
  • @Tommy 好吧,它可能是正确的可能性很小。大声笑!
  • @Fogmeister,它甚至不是很小,实际上它等于零)这就是它被称为 UUID 的原因。不仅仅是一个随机数生成器:)
  • @Fogmeister,有一个magnificent question 专门讨论这个话题:)

标签: ios objective-c iphone udid


【解决方案1】:
NSString* identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; // IOS 6+
NSLog(@"output is : %@", identifier);

Swift 2.X(此处 X 表示高于 2.0 的所有版本)

let identifier: String = UIDevice.currentDevice().identifierForVendor().UUIDString()
NSLog("output is : %@", identifier)

Swift3

let identifier = UIDevice.current.identifierForVendor?.uuidString

NSLog("output is : %@", identifier! as String)

其他reference

Apple 显然开始在 iOS5 中删除对 UDID(唯一设备标识符)的访问权限。无论如何,您现在可以为识别目的做的最好的事情就是使用 UUID(通用唯一标识符)。这必须基于每个应用程序。也就是说,没有办法再识别设备了,但是可以识别设备上的一个app。只要用户没有完全删除app,那么这个标识符会在app启动之间一直存在,至少让您在设备上使用特定应用识别同一用户。不幸的是,如果用户完全删除然后重新安装应用程序,那么 ID 将会改变,但这是任何人都可以做的最好的事情。

【讨论】:

  • 从技术上讲,这是 Apple 现在允许您执行的操作,而不是使用 UDID,但需要注意的是,您不能使用该标识符来投放广告。但是 +1 因为这是人们现在对过去使用 UDID 的其他任何事情所做的事情。
  • 我用过这段代码。但它不会返回与我的 iOS 设备相同的 UDID。有什么方法可以获取我设备的实际 UDID?
  • 此标识符是否对所有设备和应用程序都是唯一的?
  • @NishiBansalas 多人表示。不,这是不可能的。一个快速的谷歌搜索会告诉你这一点。如果您在发布之前搜索过 SO,您会发现这个。您也可以浏览 Apple 开发者网站来阅读此内容。不确定您还需要多少确认? UDID 不可用。
  • 我可以获取与我的设备相关联的任何其他唯一 ID 以通过我的应用进行身份验证吗?
猜你喜欢
  • 2014-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 2017-04-04
  • 2013-01-27
相关资源
最近更新 更多