适用于 iOS 和安卓的移动设备独一性

我正在寻找一种使用唯一标识符安全识别移动设备的方法。每次在特定设备上安装应用时,我都应获得相同的唯一标识符。此标识符将上传到服务器后端并保存以供将来参考。

至关重要的是,必须在不依赖手机的IMEI号码的情况下实现这一点。苹果早就禁止在iOS上使用它,谷歌明天可能会为Android做同样的事情。

对于Android来说,至少ANDROID_ID。那么iOS呢?什么都没有吗?

对于Android和iOS来说,必须有一种标准的,万无一失的方法。我对任何/所有/付费/免费/本地/第三方解决方案感兴趣。其他公司采取了哪些措施来解决这个问题?

我已经阅读了以下帖子:

1. 识别应用安装。

2. 是否有唯一的安卓设备ID?

3.为每个Android设备获取唯一的ID签名

4. iOS 上持久的跨安装设备标识符:使用钥匙串

5. UIDevice uniqueIdentifier 已弃用 - 现在该怎么办?

始终在iOS 7中获取唯一的设备ID

7. iOS7 - 设备唯一标识符

8. 将唯一 ID 实现为 UUID 并将其保存在钥匙串中

我想超越这一点。还能做些什么?有没有一个全面的,一劳永逸的,防弹的解决方案?


答案 1

从您上面列出的帖子中,已经有您的问题的答案:在iOS上,将生成的UUID保存到钥匙串中,以便即使在重新安装后也能保留。但是,恢复出厂设置将清除该UUID,您应该注意此限制。这不是一个万无一失的解决方案,因为它受到Apple平台的限制,但它仍然足够好,并且被许多应用程序使用。


答案 2

一年前,我写了一篇文章,谈论一种适用于iOS的“防弹”解决方案:https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/

我的解决方案使用 Apple IFA 或 IFV,如果这些 ID 不可用,则回退到随机 UUID。选择的唯一ID存储在本地和钥匙串上(当然不会同步到iCloud)。NSUserDefaults

这样,您就可以卸载并重新安装应用程序,并且设备ID保持不变。我在数百万台设备中使用这种方法,没有任何问题;)

干杯,米格尔


推荐