• 0
Barbanel

Идентификация устройства

Вопросы

Привет,

В нашем приложении нам необходимо каким либо образом идентифицировать устройство, как вариант по его Mac Address или IMEI (что успешно работает для Андроид).
Начиная с какой-то версии iOS оба действия более недоступны. На стэке пишут что можно использовать уникальный номер устройства.
Мы читаем этот номер вот так:

function TRbkMobileDevice.GetiOSDeviceIdentifier(): string;
var
    Device : UIDevice;
begin
    Device := TUIDevice.Wrap(TUIDevice.OCClass.currentDevice);
    Result := Device.identifierForVendor.UUIDString.UTF8String;
end;

Но: на конкретно нашем тестовом устройстве этот номер меняется сам по себе, примерно раз в несколько дней. Так должно быть и мы чего-то не знаем, или это баг, или что???
Как вы идентифицируете девайсы?

PS. отказаться от идентификации нельзя, требование безопасности и ТЗ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 ответов на этот вопрос

  • 0

Хм... этот номер меняется при каждой новой установке приложения.
Т.е. после удаления приложения и установке заново.

После обновления приложения - не меняется.
Ничего не понимаю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

На андроиде мак адрес устройств выше 6 версии отдаёт статичный 02:00:00:00

на йос есть uuid, есть udid 

udid - это что-то типа серийника, он статичный, но эпл вроде закрыла доступ

uuid - это уникальный код устройства, который при переустановки приложения обновляется.

вариант использовать GUID, и сохранять его на устройстве 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да, как-то так.
На стеке народ советует получить UUID и сохранить его в KeyChain.
Прикол только в том, что да полдня гугления так и не стало ясно как работать с ним из Delphi.
Есть код от братьев-китайцев, но он требует скомпилированную под иос либу, которую нужно выкачивать с ихних серверов, что блин не так-то просто.
Если удастся заполучить, я поделюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Работа с KeyChain вроде у TMS была сделана в iCl,  но это не точно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Всем доброго времени!

Как и обещал, выкладываю либы для работы с KeyChain.
Либы были взяты у братьев-китайцев, ни слова про покупку сказано не было (хотя чтобы выкачать их пришлось заплатить какому-то облачному сервису).

Использовать просто, за все отвечают три функции: 

  function StoreItemToKeychain(const AServiceName, AKey, AValue: string; const bOverride: Boolean=True): Boolean;  
  function GetItemValueFromKeychain(const AServiceName, AKey: string): string;  
  function DeleteItemFromKeychain(const AServiceName, AKey: string): Boolean;  

Ну и традиционно нужно подключить саму библиотеку, все находится в аттаче.
Enjoy! 😃

iOS_KeyChain.zip

Изменено пользователем Barbanel
граммар-наци не дремлет =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу