通过私有API检索UDID

4

我正在寻找一种在运行iOS 6+的设备上检索UDID的方法(仅企业部署 - 没有应用商店限制)。

调用(现在是私有的)方法uniqueIdentifier返回以'FFFFFFF'开头的'vendorIdentifier'。不幸的是,这不是我想要的。

有什么想法吗?还有其他私有方法或类似的东西吗?

提前致谢。


为什么需要UDID? - thorb65
1
尝试使用此链接 https://github.com/theiostream/lockdown-uiduid/blob/master/main.mm - creker
3个回答

2
我建议你阅读这篇文章,总结如下:
  • 先前已弃用的uniqueIdentifier现在在iOS 7+上的作用与vendorIdentifier相同,因此即使对于企业应用程序也不再可用。
  • OpenUDID在iOS 7+上不能在应用程序之间共享,现在可能会发生变化。它仍然可用,但不再推荐使用。
  • vendorIdentifier没有改变,但不建议在企业应用程序中使用,因为更新应用程序时可能会更改。
  • 新的advertisingIdentifier API是新应用程序的选择。它适用于所有应用程序,不应经常更改,但用户可以在设置页面重置它。
编辑:网站 udid.io 可以获取真实设备的 UDID,而不是被混淆的UDID,如果你需要在应用程序之外使用它。如果你需要在应用程序内部获取UDID,请参考我上面的回答。

我知道OpenUDID。但问题是,我们的(遗留)后端根据UDID返回数据。我正在寻找一种解决方案,不涉及重构服务器端应用程序。人们只需从iTunes复制并粘贴其UDID即可开始使用。 - user3086582
很抱歉听到这个消息,但在iOS 7+中,无法再从代码中访问iTunes中显示的UDID。 - redent84

1
你可以通过使用私有API来获取唯一的UDID。请查看链接中被接受的答案中的代码。

谢谢回复。不幸的是,我只得到了一些唯一标识符 - 而不是在iTunes中显示的特定UDID。 - user3086582
好奇怪 - 我明天会重新查看代码并告诉你,因为我以为我获得的UDID与我们在iTunes中看到的相同。 - TorukMakto

0

抱歉,但是苹果公司已经警告过这个功能将被弃用了。我自己也曾经遇到过同样的问题。

我无法像苹果公司那样帮助您识别设备,但是您可以在应用程序启动时生成一个唯一的UUID并将其存储在KeyChain中。虽然不完美,但它将在安装之间保持持久,并且对于该设备是唯一的。据我所知,这是目前的解决方案。


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