如何在iPhone上生成良好的,不变的UDID

时间:2011-11-22 12:08:01

标签: iphone ios5 privacy

在iOS 5中,[[UIDevice currentDevice] uniqueIdentifier]的使用已被弃用。我们现在鼓励使用自己生成的UUID并将它们存储在应用程序的NSDefaults中。我想这对于大多数用途来说都没问题。

但我的问题是 - 是否有可能以某种方式生成UUID,其行为与现在的设备ID相似 - 即使在删除并重新安装应用程序后,我仍希望保持相同。这样做的目的是帮助跟踪从iPhone获取的可能的欺诈尝试。

我想知道是否使用MAC地址,就像这个类别:https://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.m一样好吗?

2 个答案:

答案 0 :(得分:2)

文档中对uniqueIdentifier属性的讨论说明:

  

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

将其写入用户默认值应该确保在删除/重新安装应用程序时保留它我会想到。

编辑:

对不起,they are not kept when an application is removed显然。 documentation描述了如何生成UUID,但我无法确定它对于给定的用户/设备是否是常量。我看到有些人建议使用keychain来通过删除/重新安装来保持持久性,但不知道它是多么值得推荐(在任何情况下,用户都可以删除条目)。 / p>

答案 1 :(得分:0)

使用Apple描述的方法(由jbat指出的方法)创建自己的UUID,将其存储在NSUserDefaults中。

使用iCloud,您可以使用键值存储来帮助将此UUID“持久”保存到特定用户,安装和不同设备之间。