用OpenUDID替代UDID是一个好的方法吗?

6

苹果正在拒绝使用UDID的应用程序。有很多帖子讨论这个问题,但我找不到哪里写着使用OpenUDID是好的。

也许有人知道苹果是否会批准这个?如果OpenUDID具备与UDID相同的所有功能吗?

也许有人正在使用这种方法,并可以解释得更详细一些?

3个回答

5

看起来最简单的解决方案就是生成自己的UUID:

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

如果您需要在卸载/安装周期中保留此内容,请按照这里描述的方式将其放入钥匙串中:https://dev59.com/5Wgu5IYBdhLWcg3wFDJr#11597291

最好的方法是这样,这也是苹果建议您这样做的。

祝您好运!


1

我们基于设备MAC地址和捆绑标识符的哈希值创建自己的UDID。这确保了我们可以在特定设备上唯一地识别我们的应用程序。

如果您需要跨多个应用程序使用唯一ID,您也可以仅基于MAC地址创建哈希。

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

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


5
iOS 7 开始,MAC地址将无法被开发者访问,因此这将在未来变得无用。 - Anya Shenanigans

0
根据我的知识,这是一个好办法。同样,SecureUDID也在做同样的事情。通过使用OpenUDID,即使重新启动应用程序或重新安装应用程序,UDID也不会改变。但是,如果更改任何输入值,如kOpenUDIDDomain或kOpenUDIDSlotPBPrefix,则会生成新的UDID。它根据名称生成并存储到PasteBoard中。即使您重置设备,仍然是相同的。我个人投票支持这个方法。

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