【问题标题】:Replacment UDID with OpenUDID is this good way?用 Open UDID 替换 UDID 是个好方法吗?
【发布时间】:2013-08-08 21:46:26
【问题描述】:

所以苹果拒绝使用 UDID 的应用程序。有很多关于这个的帖子,但我找不到写在哪里是使用 OpenUDID 的好处。

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

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

【问题讨论】:

    标签: objective-c ios udid


    【解决方案1】:

    似乎最简单的解决方案就是生成自己的 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 建议您这样做的方式。

    祝你好运!

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • iOS 7的开发者将无法访问该MAC地址,所以这将在未来无用
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 2013-06-06
        • 2014-03-12
        • 1970-01-01
        • 2019-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多