iOS 和 Android 的移动设备唯一性

Posted

技术标签:

【中文标题】iOS 和 Android 的移动设备唯一性【英文标题】:Mobile device uniqueness for iOS and Android 【发布时间】:2015-11-03 04:16:52 【问题描述】:

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

必须在不依赖手机 IMEI 号码的情况下实现这一点。 Apple 早就禁止在 ios 上使用它,而 Google 明天可能会在 android 上做同样的事情。

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

必须有一种标准的、万无一失的方式来为 Android 和 iOS 执行此操作。我对任何/所有/付费/免费/本机/第三方解决方案感兴趣。其他公司为解决这个问题做了什么?

我已经阅读了以下帖子:

1. Identifying App Installations.

2. Is there a unique Android device ID?

3. Getting a unique ID signature for every android device.

4. Persistent, Cross-Install Device Identifier on iOS: Using Keychain.

5. UIDevice uniqueIdentifier Deprecated - What To Do Now?

6. Always get a unique device id in iOS 7.

7. iOS7 - Device unique identifier.

8. Implementing Unique ID as UUID and saving it in Keychain.

我想超越这个。还有什么可以做的?是否有一个全面的、一劳永逸的防弹解决方案?

【问题讨论】:

IOS 的 MAC 地址或 UUID 【参考方案1】:

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

【讨论】:

谢谢。这不是我正在寻找的全面答案,但我现在会接受。【参考方案2】:

一年前,我写了一篇文章,讨论了一种对 iOS 来说往往是“防弹”的解决方案:https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/。

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

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

干杯, 米格尔

【讨论】:

谢谢你的回答...我会把它转给iOS团队...他们仍在努力... :) –

以上是关于iOS 和 Android 的移动设备唯一性的主要内容,如果未能解决你的问题,请参考以下文章

获取安卓设备唯一标识,看着一篇就够了

Android设备标识

无法在 IOS 和 Android 移动设备上选择文件

移动设备(iOS 和 Android)的 Google 分析会话计数错误

用于移动设备的网络录音/播放(Android、iOS、BB)

从 YouTube API 仅检索支持移动设备的视频