【问题标题】:Does two device will have the same 'UUID'两个设备是否将具有相同的“UUID”
【发布时间】:2015-09-10 06:33:10
【问题描述】:

在我的 iOS 应用中,我必须限制用户在每台设备上使用 iOS 应用。为此,我找到了一个解决方案,我们可以使用 UUID (Universally Unique Identifier)identifierForVendor method 来生成唯一 ID 来唯一标识设备上的应用程序。 (在这里,我没有使用UDID (Unique Device Identifier),因为如果应用程序使用 UDID,Apple 会拒绝应用程序)。

所以我的问题是这两个设备是否有可能具有相同的UUID。有什么想法吗?

编辑 1:

我还有一个疑问,好像我在不同的两台设备上安装了同一个应用程序并将其UUID 字符串保存到设备KeyChain 中。两台设备都有相同的iCloud 帐户。现在在为这两个设备进行iCloud 同步时,我的设备KeyChain 是否会被覆盖?

编辑 2:

我发现 EDIT 1 的答案为“是的,通过 iCloud Keychainkeychain 将同步到我的另一台设备,我将获得相同的设备标识符 from here 和下面的答案'

对于要与iCloud keychain 同步的项目,我需要明确设置kSecAttrSynchronizable 属性。使用SecItem API,我们可以在添加钥匙串项时设置此属性。

是否有任何教程如何在Keychain 中添加项目(没有第三方库)?

【问题讨论】:

  • 你可以参考stackoverflow.com/questions/21878560/…,它解决了问题
  • 嗨 Gekb,感谢您的评论。在您问题的链接中,我问您是否能够找到任何解决方案。你能帮帮我吗?
  • 是的,我的问题中的答案解决了这个问题,您也可以在 :support.apple.com/en-in/HT204085 清除您对 iCloud 钥匙串的疑问,根据我的理解,设备钥匙串不同,iCloud 钥匙串也不同。我只是在比较我们的 Mac OS 钥匙串,我们有系统、登录、本地项目等。
  • @iOSDev 查看我编辑的答案.....

标签: ios ios7 uuid uniqueidentifier uidevice


【解决方案1】:

不,两个设备没有相同的UUID。我对此百分百确定。所以请使用identifierForVendor 方法。

但是,当您在设备中重新安装应用程序时,UUID 可能会更改(如果同一供应商没有其他应用程序)。

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

编辑

您的问题

我还有一个疑问,好像我在不同的两台设备上安装了同一个应用程序并将其 UUID 字符串保存到设备 KeyChain 中。两台设备都有相同的 iCloud 帐户。现在在为这两个设备进行 iCloud 同步时,我的设备 KeyChain 是否会被覆盖?

回答

是的。您的钥匙串将被覆盖。因此,两个设备的 UUID 相同。

【讨论】:

  • #V.J.谢谢您的回答。你能不能也检查一下我编辑过的问题。
【解决方案2】:

我认为不是!

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

通常,供应商由 App Store 提供的数据决定。如果应用程序不是从应用程序商店安装的(例如企业应用程序和仍在开发中的应用程序),则会根据应用程序的捆绑 ID 计算供应商标识符。捆绑 ID 假定为反向 DNS 格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 2017-11-02
    • 2014-02-03
    • 2021-03-22
    • 1970-01-01
    相关资源
    最近更新 更多