如何在 Apple 设备上获取唯一且一致的设备 ID

Posted

技术标签:

【中文标题】如何在 Apple 设备上获取唯一且一致的设备 ID【英文标题】:How to get unique and consistent device id on Apple device 【发布时间】:2017-01-06 06:54:59 【问题描述】:

我需要生成符合以下条件的设备 ID:

它是独一无二的。 它是一致的(尽可能),即同一设备保持相同。 它需要最少的权限。 转让和存储是合法的。

例如,解决方案可以是一个无需特殊权限即可访问的硬件 ID,然后对其进行哈希处理并通过网络发送,我只是不知道是否有任何权限。


附言我不想在钥匙串或其他任何地方存储任何东西。只需即时生成,并保持不变,独立于生成它的应用程序。并且在恢复出厂设置或其他极少数情况下重置它是可以的。

【问题讨论】:

这是不可能的 如果分析服务没有可用的设备 ID,它们如何工作? 我们可以获取商家 id,但是当用户重新安装应用程序时它会改变,因此我们必须将自己生成的 id 存储在钥匙串中,我认为他们做同样的事情 您对钥匙串选项有什么看法? 它比 IDFA 好在哪里?用户可以编辑/删除它吗?多个应用可以访问吗? 【参考方案1】:

虽然我过去可以访问某些特定于设备的令牌,但现在不可能了。

API 将为您提供在该特定设备上安装应用的唯一标识符。似乎存储该令牌并使用钥匙串(如果尚未从另一个应用程序中存在)共享它似乎是您目前最好的选择。

这是保护用户隐私的必要条件,我强烈建议不要违背这一点并破坏这个概念(我认为无论如何在任何 AppStore 应用程序中都禁止这样做)。

【讨论】:

感谢您的回答,IDFA 怎么样? 用户可以在设置应用中禁用 IDFA。

以上是关于如何在 Apple 设备上获取唯一且一致的设备 ID的主要内容,如果未能解决你的问题,请参考以下文章

Android能够获取到唯一的设备ID吗

如何从watch os swift获取设备ID

设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识

设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识 zz

[转]iOS设备唯一标识探讨

设备上的 Nativescript iOS 应用程序分析