设备UDID的替代方案 – 准备自己

可能重复:
UIDevice uniqueIdentifier已弃用 – 现在该怎么办?

我知道有关于此的问题有很多问题,但我认为因为Apple正在提前完成并主动拒绝使用UDID的应用程序( http://pulse.me/s/7mzKE ),我们开发人员需要采取积极的态度并大量讨论这个问题。

所以问题是 – 除了访问它的UDID属性之外,什么是唯一设备识别的良好,稳定和正确的替代方案?

这取决于您的需求…如果您正在寻找应用程序使用的简单设备标识符,那么不推荐使用的uniqueIdentifier方法的文档几乎可以提供您的答案:

不要使用uniqueIdentifier属性。 要创建特定于应用程序的唯一标识符,可以调用CFUUIDCreate函数来创建UUID,并使用NSUserDefaults类将其写入默认数据库。

CFUUIDCreate将返回您的应用程序独有的唯一手机标识符。 您需要将其存储在NSUserDefaults因为如果您进行后续调用,它将会更改 。 对于大多数用途来说,这就足够了,而且Apple并没有提供足够的警告来解决这一变化(iOS 5已经出现了六个多月,开发人员的文档更长)。

一种情况是您需要跨应用程序(即移动广告网络)共享您的设备标识符。 这是一个更复杂的问题,有许多替代选项(也不能保证它们将来会存在:Apple弃用UDID API的主要原因可能是停止跨应用程序用户跟踪)。

我个人最喜欢的是OpenUDID。

你可以在这里抓住GitHub。

我总结了我的想法,并在此简要介绍了它。

SecureUDID,基于OpenUDID但更安全,只能通过域访问(和盐)

更多信息

在任何无线通信期间,协议规范已经公开了设备2或3 MAC地址之一。

虽然我认为这不是一个典型的“我如何克服这一特殊的技术挑战”,但我同意它非常重要,并且可以在某种程度上进行讨论(不确定 – 维基?论坛?)。 我有兴趣知道是否有关于Flurry如何击败它的讨论。