两个设备是否具有相同的 'UUID'
Does two device will have the same 'UUID'
在我的 iOS 应用程序中,我必须限制用户在每台设备上使用 iOS 应用程序。为此,我找到了一个解决方案,我们可以使用 UUID (Universally Unique Identifier)
的 identifierForVendor method,它会生成一个唯一 ID 来唯一标识设备上的应用程序。 (在这里,我没有使用 UDID (Unique Device Identifier)
,因为如果应用程序使用 UDID,Apple 会拒绝该应用程序)。
所以我的问题是这两个设备有没有可能具有相同的 UUID
。有什么想法吗?
编辑 1:
我还有一个疑问,好像我在不同的两台设备上安装了相同的应用程序并将其 UUID
字符串保存到设备 KeyChain
中。两台设备都有相同的 iCloud
帐户。现在,在为这两台设备进行 iCloud
同步时,我的设备 KeyChain
会被覆盖吗?
编辑 2:
我找到了编辑 1 的答案 'Yes, through iCloud Keychain
, the keychain
would be synced to another one of my devices, and I’d get the same device identifier from here and from below answer too'
对于要与 iCloud keychain
同步的项目,我需要明确设置 kSecAttrSynchronizable
属性。使用 SecItem
API,我们可以在添加钥匙串项时设置此属性。
有没有教程如何在Keychain
中添加项目(没有第三方库)?
我认为是NO!
The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.
Normally, the vendor is determined by data provided by the App Store. If the app was not installed from the app store (such as enterprise apps and apps still in development), then a vendor identifier is calculated based on the app’s bundle ID. The bundle ID is assumed to be in reverse-DNS format.
不,两个设备不具有相同的UUID
。我对此有 100% 的把握。所以使用 identifierForVendor
方法。
但是,当您在设备中重新安装该应用程序时,UUID
可能会发生变化(如果同一供应商没有其他应用程序)。
The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.
编辑
你的问题
我还有一个疑问,好像我在不同的两台设备上安装了相同的应用程序并将其 UUID 字符串保存到设备 KeyChain 中。两台设备都有相同的 iCloud 帐户。现在,在为这两台设备进行 iCloud 同步时,我的设备 KeyChain 是否会被覆盖?
回答
是的。您的钥匙串将被覆盖。所以你有两个设备相同的 UUID。
在我的 iOS 应用程序中,我必须限制用户在每台设备上使用 iOS 应用程序。为此,我找到了一个解决方案,我们可以使用 UUID (Universally Unique Identifier)
的 identifierForVendor method,它会生成一个唯一 ID 来唯一标识设备上的应用程序。 (在这里,我没有使用 UDID (Unique Device Identifier)
,因为如果应用程序使用 UDID,Apple 会拒绝该应用程序)。
所以我的问题是这两个设备有没有可能具有相同的 UUID
。有什么想法吗?
编辑 1:
我还有一个疑问,好像我在不同的两台设备上安装了相同的应用程序并将其 UUID
字符串保存到设备 KeyChain
中。两台设备都有相同的 iCloud
帐户。现在,在为这两台设备进行 iCloud
同步时,我的设备 KeyChain
会被覆盖吗?
编辑 2:
我找到了编辑 1 的答案 'Yes, through iCloud Keychain
, the keychain
would be synced to another one of my devices, and I’d get the same device identifier from here and from below answer too'
对于要与 iCloud keychain
同步的项目,我需要明确设置 kSecAttrSynchronizable
属性。使用 SecItem
API,我们可以在添加钥匙串项时设置此属性。
有没有教程如何在Keychain
中添加项目(没有第三方库)?
我认为是NO!
The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.
Normally, the vendor is determined by data provided by the App Store. If the app was not installed from the app store (such as enterprise apps and apps still in development), then a vendor identifier is calculated based on the app’s bundle ID. The bundle ID is assumed to be in reverse-DNS format.
不,两个设备不具有相同的UUID
。我对此有 100% 的把握。所以使用 identifierForVendor
方法。
但是,当您在设备中重新安装该应用程序时,UUID
可能会发生变化(如果同一供应商没有其他应用程序)。
The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.
编辑
你的问题
我还有一个疑问,好像我在不同的两台设备上安装了相同的应用程序并将其 UUID 字符串保存到设备 KeyChain 中。两台设备都有相同的 iCloud 帐户。现在,在为这两台设备进行 iCloud 同步时,我的设备 KeyChain 是否会被覆盖?
回答
是的。您的钥匙串将被覆盖。所以你有两个设备相同的 UUID。