Перейти к содержанию
Fire Monkey от А до Я
  • 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. отказаться от идентификации нельзя, требование безопасности и ТЗ.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

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

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

Ссылка на комментарий
  • 0
  • Модераторы

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

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

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

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

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

Ссылка на комментарий
  • 0

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

Ссылка на комментарий
  • 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
граммар-наци не дремлет =)
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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