【问题标题】:Identifier for Vendor is gettnig changed everyTime app is reinstalled每次重新安装应用程序时,供应商标识符都会更改
【发布时间】:2016-08-18 11:31:44
【问题描述】:

我已经创建了一个获取 UUID 的函数

func deviceUUID() -> String {
    return UIDevice.currentDevice().identifierForVendor?.UUIDString ?? ""
}

但问题是,当我从同一设备卸载应用程序并重新安装时。我得到了一个全新的 UUIDString。如果这是默认行为,那么我可以以某种方式获得以前的 UUID 吗?因为我在我们的服务器中有 UUID 作为用户 ID。

我确实有一个解决方案,但我不知道它是否有效,所以请指导我。

假设我是第一次获得 ID 并将其保存在钥匙串中。当用户重新安装应用程序时,我从钥匙串中获取 ID。这可能吗?

【问题讨论】:

  • UUID 不是静态的,见stackoverflow.com/questions/31652359/…
  • 如果你需要之前的 ID 然后存储在 Userdefaults 中
  • 卸载应用时会删除用户默认设置。
  • 我兄弟没有其他办法,为了安全起见,苹果这样做了,然后存储在钥匙串存档器中

标签: ios swift swift2 uuid


【解决方案1】:

UIDevice 文档中描述的这种正确行为。

如果您想存储一些在卸载应用程序时保留的标识符,您应该在钥匙串中保存一个唯一值。

请注意,即使这些也不会 100% 存储,如果他/她知道钥匙串或设备被擦除,用户可以删除。

【讨论】:

  • 您可以使用苹果 API 获取唯一令牌 generateToken(completionHandler:) 。注意 - 您用于生成令牌的应用程序必须与您的开发者帐户相关联;否则,生成请求失败
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多