使用OpenUDID替换UDID是一种好方法吗?

时间:2012-05-04 11:43:58

标签: objective-c ios udid

所以苹果拒绝使用UDID的应用程序。这里有很多帖子,但是我找不到写的地方,使用OpenUDID是好的。

所以也许有人知道苹果会批准这个吗? 如果OpenUDID具有UDID的所有功能?

也许某人正在使用这种方法并可以解释更多?

3 个答案:

答案 0 :(得分:5)

似乎最简单的解决方案就是生成自己的UUID:

NSString *UUID() {
    CFUUIDRef cfuuid = CFUUIDCreate(NULL); 
    NSString *uuid =  (__bridge_transfer NSString *)CFUUIDCreateString(NULL, cfuuid); 
    CFRelease(cfuuid);
    return uuid;
}

如果您需要在卸载/安装周期中保留此项,请按照此处所述将其放入钥匙串中:https://stackoverflow.com/a/11597291/382374

最好的,这就是Apple建议您这样做的方式。

祝你好运!

答案 1 :(得分:1)

我们根据设备MAC地址和包标识符的哈希值创建自己的UDID。这可确保我们可以在特定设备上唯一标识我们的应用。

如果您需要跨多个应用的​​唯一ID,您还可以仅根据MAC地址创建哈希值。

我实际上写了一篇关于如何做到这一点的博文,并在这里提供了一些示例代码:

https://radeeccles.com/blog/create-your-own-unique-device-identifier-udid

答案 2 :(得分:0)

据我所知,这是好方法。类似地,SecureUDID也是做同样的事情。通过使用OpenUDID,UDID不会改变甚至重新启动应用程序或重新安装应用程序。但是如果你改变任何输入值,如kOpenUDIDDomain或kOpenUDIDSlotPBPrefix,那么它会生成新的UDID。基于名称,它是生成并存储到PasteBoard中。如果你重置设备也一样。我个人投票支持。