【问题标题】:Get unique device id in iOS 10.0在 iOS 10.0 中获取唯一的设备 ID
【发布时间】:2017-09-07 21:20:32
【问题描述】:

由于 UDID 已被弃用,是否有任何其他可能的解决方案来获得唯一的设备标识符?我们可以使用vendorIdentifier,但是如果用户下次重新安装应用程序就不会一样了。以前我使用的是 OpenUUID,这是一种更好的解决方案,但现在似乎已被弃用。我的要求是发送一个唯一的设备标识符,即使用户删除或重新安装应用程序,它也应该是相同的。我们不能使用广告标识符,因为我的应用程序没有使用任何 iAd 框架,如果我在未正确配置 iAd 的情况下使用广告标识符,应该有机会从商店拒绝应用程序。

我可以使用“CFUUIDCreateString”并存储它的钥匙串,以便在用户重置应用程序之前它是相同的吗?这样做还有其他风险吗?

【问题讨论】:

  • 正如我所提到的,如果我们删除并重新安装应用程序,供应商标识符将不会相同。
  • 也许因为这不可用,您可以解释为什么需要它,我们可以建议替代解决方案:D
  • 用例 - 我们的应用程序应该被限制为用户只能使用他的 n 台设备,如果他正在登录他的第 (n+1) 台设备,那么此时不应发生登录。为此,我们需要发送一些唯一标识符来识别设备。
  • 在这种情况下,您需要创建某种基于令牌的系统,在该系统中,用户使用他们的用户帐户注册一个令牌,以安装特定的应用程序。系统应该只发布 n 个令牌,如果用户需要切换到另一个设备,他们需要注销并重新注册到新设备。密钥应该是用户帐户 ID(例如电子邮件地址),向其颁发了许多令牌。发出令牌后,它会存储在设备上,并随每个请求一起发送回服务器。如果用户登录到设备 n+1,则没有新的令牌可用。

标签: ios udid


【解决方案1】:

您不能也不应该尝试使用在重新安装后仍然存在的持久标识符。 IDFA 将成为单个标识符的最可靠来源,但正如您所说,您将需要 iAd 框架来使用它,并且当您提交到应用商店时,您需要有充分的理由这样做。如果 Apple 发现任何其他类型的持久标识符,他们可能会拒绝您的应用程序。执行此操作的唯一其他(非常不可靠)方法是服务器端设备指纹识别,但这可能会产生较差的结果。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-01-08
  • 2019-08-28
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 2013-09-19
相关资源
最近更新 更多