Как создать хороший неизменяемый UDID на iPhone - PullRequest
4 голосов
/ 22 ноября 2011

В iOS 5 использование [[UIDevice currentDevice] uniqueIdentifier] устарело. Теперь мы рекомендуем использовать собственные UUID и сохранять их в NSDefaults приложения. Это нормально для большинства случаев использования, я думаю.

Но мой вопрос - можно ли каким-то образом сгенерировать UUID, который бы сейчас работал как идентификатор устройства, - я бы хотел оставить его прежним даже после удаления и переустановки приложения. Цель этого - помочь отследить возможные попытки мошенничества с iPhone.

Мне интересно, было бы нормально использовать MAC-адрес, как в этой категории: https://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.m?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Обсуждение свойства uniqueIdentifier в документации гласит:

Не используйте свойство uniqueIdentifier.Чтобы создать уникальный идентификатор, специфичный для вашего приложения, вы можете вызвать функцию CFUUIDCreate для создания UUID и записать его в базу данных по умолчанию, используя класс NSUserDefaults.

Запись этого пользователя по умолчанию должна гарантироватьчто оно сохраняется, если приложение удаляется / переустанавливается. Я бы подумал.

Редактировать:

Извините, они не сохраняются при удалении приложения , очевидно.Документация описывает, как генерировать UUID, но я не могу выяснить, является ли он постоянным для данного пользователя / устройства.Я видел, как некоторые люди предлагали использовать keychain для сохранения через удаление / переустановку приложения, но не знаю, насколько это рекомендуется (и в любом случае, я полагаю, пользователь может удалить записи).

0 голосов
/ 22 ноября 2011

Создайте свой собственный UUID, используя метод, описанный Apple (тот, который указал jbat), сохраните его в NSUserDefaults.

Используя iCloud, вы можете использовать хранилище Key-value, чтобы помочь «сохранить» этоUUID для конкретного пользователя, между установками и различными устройствами.

...