11

可能重复:
不推荐使用 UIDevice uniqueIdentifier - 现在该怎么办?

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

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

4

5 回答 5

15

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

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

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

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

于 2012-03-25T12:07:13.420 回答
9

我个人最喜欢的是 OpenUDID。

你可以在这里获取 GitHub 。

我总结了我的想法,并在这里做一个简短的描述。

于 2012-03-25T18:21:04.673 回答
4

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

更多信息

于 2012-04-04T15:09:30.590 回答
1

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

于 2012-03-25T15:53:48.090 回答
0

虽然我认为这不是典型的“我如何克服这个特殊的技术挑战”,但我同意它非常重要,并且可以在 SO 中很好地讨论(不确定 - 维基?论坛?)。我很想知道是否有关于Flurry 如何击败这个的讨论。

于 2012-03-25T10:51:35.450 回答