Использование UDID для создания уникального идентификатора пользователя - PullRequest
15 голосов
/ 08 апреля 2011

Я работаю над приложением для iPhone, которое связывается с сервером для хранения и обмена данными. Поскольку я хотел бы сделать это как можно более простым, я хочу избежать регистрации (или mybe также использование пароля) для учетной записи пользователя. Можно ли (и разрешено ли) получить UDID устройства iPhone и сделать, например,. MD5-хэш, который я передаю на сервер и использую для аутентификации? Поскольку этот идентификатор является уникальным, я мог бы просто использовать его для входа в систему и получения указанных пользователем данных с сервера без необходимости создания данных для входа.

Разрешено ли получить доступ к UDID, сделать из него MD5-хэш и сохранить его в базе данных?

Второй вопрос: как мне получить UDID? ; -)

Ответы [ 4 ]

15 голосов
/ 08 апреля 2011

Да, это разрешено, но примите во внимание то, что я сообщил ниже из документации.

Вы можете получить UDID следующим образом:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

Обратите внимание на следующее изОфициальная документация Apple:

Уникальный идентификатор устройства (иногда сокращенно UDID для уникального идентификатора устройства) представляет собой значение хеш-функции, состоящее из различных аппаратных идентификаторов, таких как серийный номер устройства.Он гарантированно уникален для каждого устройства.UDID не зависит от имени устройства.Для устройств, которые используют SIM-карту (модуль идентификации абонента), UDID не зависит от SIM-карты.

Для обеспечения безопасности и конфиденциальности пользователя запрещается публично связывать уникальный идентификатор устройства с учетной записью пользователя.

Вы можете использовать UDID вместе с идентификатором пользователя конкретного приложения для идентификации данных конкретного приложения на вашем сервере.Например, вы можете использовать идентификатор комбинации устройство-пользователь для управления доступом к зарегистрированным продуктам или при хранении рекордов для игры на центральном сервере.Однако, если вы разрабатываете игру, вы можете вместо этого использовать ключ идентификатора игрока Game Center, как описано в Руководстве по программированию Game Kit.

Внимание! Никогда не храните информацию о пользователях, основываясь исключительно на UDID.Всегда используйте комбинацию UDID и пользовательского идентификатора приложения.Объединенный идентификатор гарантирует, что если пользователь передает устройство другому пользователю, новый пользователь не будет иметь доступа к данным исходного пользователя.

3 голосов
/ 08 апреля 2011

Я использовал UDID для проверки, если устройство уже имеет действующую подписку.Получить UDID очень просто:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

Если вы читаете правила магазина приложений, есть раздел, позволяющий пользователю создать учетную запись для перемещения подписок на другое устройство.В этом разделе Apple разъясняет, что для создания учетной записи необходимо ввести имя пользователя и пароль, которые пользователь должен ввести.Имя пользователя не может быть адресом электронной почты, так как это личная информация.

Если ваше приложение тяжело опирается на данные, рекомендуется создать дополнительную учетную запись пользователя.

Рекомендации по обзору AppStore можно найти: http://developer.apple.com/appstore/resources/approval/guidelines.html

2 голосов
/ 29 октября 2013

UDID скрыт с iOS-6 и более поздних версий, поэтому вы можете однозначно идентифицировать устройство по:

NSString *UDID = [[UIDevice currentDevice] identifierForVendor];
2 голосов
/ 08 апреля 2011

Полагаю, вы имеете в виду UDID, верно? Возможно, именно поэтому вы не можете найти похожие вопросы и ответы, такие как this :)

...