Два устройства будут иметь одинаковый UUID

В моем приложении для iOS я должен ограничить использование приложением iOS для каждого устройства. Для этого я нашел решение, которое мы можем использовать метод identifierForVendor UUID (Universally Unique Identifier) который сгенерирует уникальный идентификатор для уникальной идентификации приложения на устройстве. (Здесь я не пользуюсь UDID (Unique Device Identifier) потому что Apple отклоняет приложения, если приложение использует UDID).

Так что мой вопрос, есть ли какие-то возможности, что два устройства будут одинаковыми? UUID, любая идея?

РЕДАКТИРОВАТЬ 1:

У меня есть еще одно сомнение, как будто я установил одно и то же приложение на разных устройствах и сохранить его UUID строка в устройство KeyChain, Оба устройства имеют одинаковые iCloud учетная запись. Сейчас пока делаю iCloud Синхронизация для этих двух устройств, это одно мое устройство KeyChain будет перезаписан?

РЕДАКТИРОВАТЬ 2:

Я нашел ответ для РЕДАКТИРОВАТЬ 1 как "Да, через iCloud Keychain, keychain будет синхронизирован с другим моим устройством, и я получу тот же идентификатор устройства отсюда и снизу ответ "

Для элемента, который будет синхронизирован с iCloud keychainМне нужно явно установить kSecAttrSynchronizable приписывать. С использованием SecItem API, мы можем установить этот атрибут при добавлении элемента цепочки для ключей.

Есть ли учебник, как добавить элемент в Keychain (Без сторонних библиотек)?

2 ответа

Решение

Нет, два устройства не имеют одинаковые UUID, Я на 100% уверен в этом. Так что иди с identifierForVendor метод.

Но UUID может быть изменено при переустановке приложения на вашем устройстве (если нет другого приложения для того же поставщика).

Значение в этом свойстве остается неизменным, пока приложение (или другое приложение того же производителя) установлено на устройстве iOS. Значение изменяется, когда пользователь удаляет все приложения этого поставщика с устройства, а затем переустанавливает одно или несколько из них. Это значение также может изменяться при установке тестовых сборок с использованием XCode или при установке приложения на устройство с использованием специального распространения. Поэтому, если ваше приложение хранит значение этого свойства где-либо, вы должны корректно обрабатывать ситуации, когда идентификатор изменяется.

РЕДАКТИРОВАТЬ

ВАШ ВОПРОС

У меня есть еще одно сомнение, как будто я установил одно и то же приложение на разных двух устройствах и сохранить его строку UUID в устройстве KeyChain. Оба устройства имеют одинаковую учетную запись iCloud. Теперь, когда выполняется синхронизация iCloud для этих двух устройств, перезаписывается ли одно устройство KeyChain?

ОТВЕТ

ДА. Ваш брелок будет перезаписан. Таким образом, у вас есть один и тот же UUID для обоих устройств.

Я думал, что НЕТ!

Значение этого свойства одинаково для приложений от одного поставщика, работающих на одном устройстве. Разное значение возвращается для приложений на одном устройстве разных производителей, а также для приложений на разных устройствах независимо от поставщика.

Обычно поставщик определяется данными, предоставленными App Store. Если приложение не было установлено из магазина приложений (например, корпоративные приложения и приложения, которые еще находятся в разработке), то идентификатор поставщика рассчитывается на основе идентификатора пакета приложения. Предполагается, что идентификатор пакета представлен в формате обратного DNS.

Другие вопросы по тегам