【问题标题】:identifierForVendor changes on reinstallidentifierForVendor 重新安装时的更改
【发布时间】:2015-09-02 02:12:26
【问题描述】:

identifierForVendor 应该在重新安装应用时更改:

此属性中的值在应用程序(或其他 来自同一供应商的应用程序)安装在 iOS 设备上。价值 当用户从 设备并随后重新安装其中一个或多个。值可以 使用 Xcode 安装测试版本或安装时也会更改 使用 ad-hoc 分发的设备上的应用程序。因此,如果您的应用 将此属性的值存储在任何地方,您应该优雅地 处理标识符发生变化的情况。

https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor

但是,我刚刚在应用商店中使用我们的一款实时应用对此进行了测试。即使我们的许多其他应用程序仍然安装在设备上,如果我重新安装应用程序 A,从 identifierForVendor 返回的 UUID 每次都会更改。

不是这样的。

这曾经有效。但在某些时候,UUID 似乎已经开始在“简单重新安装”时发生变化(如上所述)。这是一个已知的错误?与上面的文档相比,identifierForVendor 是否已知被破坏?任何解决方法(除了将 UUID 保存到钥匙串,因为该方法会破坏 iCloud 同步)?

【问题讨论】:

  • 在 KeyChain 中保留 identifierForVendor 或自定义 UUID。见:How to preserve identifierForVendor in ios after uninstalling ios app on device?
  • 让我引用自己的话“除了将 UUID 保存到钥匙串之外,因为该方法会因 iCloud 同步而中断”。好吧,这种方法在某些情况下可能会奏效。这意味着它不适用于所有种情况。
  • 您可以制作特定于设备的钥匙串条目(注意:我从 WWDC 视频中回忆了这一点,然后去寻找资源 - 我不需要自己明确测试)。 andyibanez.com/using-ios-keychaindeveloper.apple.com/library/ios/documentation/Security/…
  • 我想我之前没见过这个,但是如果你使用推送通知,也许你可以使用设备令牌作为一种 UUID。只是一个想法。
  • 你好@Jonny 已经 3 年 4 个月了,我仍然遇到同样的问题。苹果有没有修复它?

标签: ios uuid uniqueidentifier


【解决方案1】:

这是一个已知的错误。似乎 Apple 在 5 月 28 日左右对 AppStore 进行了更新,导致 identifierForVendor 出现这种新行为。如果您在 App Developer 论坛中搜索,则有其他开发人员报告了相同的问题。

来自 Apple 的签名 gc 已就该问题作出以下答复: “请在https://developer.apple.com/bug-reporting> 提交有关此问题的错误报告。我们已注意到此问题并正在调查。目前没有已知的解决方法。”

【讨论】:

  • 我在新论坛中找到了/a 线程。就像你说的那样,这似乎是一个已知问题。
【解决方案2】:

identifierForVendor 预计会在从设备中删除所有供应商的应用程序时发生变化。此外,如果您直接从 Xcode 构建和安装,它必然会发生变化。

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

来源:UIKit/UIDevice/identifierForVendor

【讨论】:

    【解决方案3】:

    我们即将使用 App Group 权利重新提交,以向我们提供共享的 NSUserDefaults。听起来 App Group NSUserDefaults(与 keychain-access-group 和 iCloud 键值存储权利不同)在设备上共享,但不是通过 iCloud 帐户共享。如果共享的“deviceid”NSUserDefault 键不存在,我们将保存 IdentifierForVendor ID,然后在保存后将其用于我们所有的应用程序。

    【讨论】:

      猜你喜欢
      • 2013-01-29
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多