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 的移动设备唯一性的主要内容,如果未能解决你的问题,请参考以下文章
移动设备(iOS 和 Android)的 Google 分析会话计数错误