【问题标题】:Is there a persistent replacement for UDID?是否有 UDID 的持久替代品?
【发布时间】:2013-07-10 03:19:25
【问题描述】:

我的要求是在设备重新启动、操作系统更新、应用重新安装和设备重置(即用户选择设置 > 常规 > 重置)时保持不变的 UDID。

我并没有试图破坏设备上的任何安全性;这是一款金融应用。

据我了解,OpenUDID 已被弃用。考虑到用户可以选择退出并且出于安全原因,我还没有弄清楚 SecureUDID 是否有用。

广告客户 ID 和供应商 ID 不是永久性的。

在钥匙串或用户默认/首选项中保存 ID 似乎不符合我的要求:这些机制似乎不够持久(如上所述)。

有人有什么建议吗?还是 Apple 刚刚让他们的移动设备无法做到这一点?

任何帮助将不胜感激。

【问题讨论】:

  • 我认为您添加到手机中的任何内容都不会在硬件重置后继续存在。

标签: mac-address udid


【解决方案1】:

根据文档,-[UIDevice uniqueIdentifier] 的官方替换是 identifierForVendor

对于在同一设备上运行的来自同一供应商的应用,此属性的值是相同的。对于同一设备上来自不同供应商的应用,以及不同设备上的应用,无论供应商如何,都会返回不同的值。

显然这对您来说不是问题,因为您只是在创建一个应用程序。但是,此属性确实有一些限制:

此属性中的值在应用(或来自同一供应商的其他应用)安装在 iOS 设备上时保持不变。当用户从设备中删除该供应商的所有应用程序并随后重新安装其中一个或多个应用程序时,该值会发生变化。因此,如果您的应用将此属性的值存储在任何地方,您应该优雅地处理标识符发生变化的情况。

换句话说,这个标识符几乎就像一个UDID,有一个限制是当用户从他们的设备上删除你制作的所有应用程序时,这个标识符将被重置。但老实说,我看不出这对于普通应用程序来说不够好的任何理由。只有在删除并重新安装应用程序时才会重置identifierForVendor。它会在重新启动、软件更新等过程中持续存在,因此它应该不是问题。


TL;DR 如果不违反 Apple 的规则,您所要求的目前在技术上是不可能的,但 identifierForVendor 确实应该是一个足够好的替代品。我想不出一个合理的理由,为什么您需要一个在应用删除和设备重置时仍然存在的标识符。

【讨论】:

  • 我可以想到很多这样的正当理由,即支持登录+无密码用户自动配置,尤其是。与硬件服务提供商合作时。
  • @DrMickeyLauer 在这种情况下,第一次安装或重新安装应用程序时登录肯定不会带来很大的不便。
  • PartiallyFinite:嗯,这就是零和接近零配置的细微差别。不过我同意,在大多数情况下,用户可以处理密码和登录组合。这不是 zeroconf。
猜你喜欢
  • 2014-03-12
  • 2011-01-16
  • 2017-03-25
  • 1970-01-01
  • 2012-03-26
  • 2013-08-23
  • 2010-09-13
  • 2013-01-29
  • 2011-01-19
相关资源
最近更新 更多