Замена UDID на OpenUDID - это хороший способ?

Таким образом, Apple отклоняет приложения, использующие UDID. Об этом много сообщений, но я не могу найти, где написано, хорошо ли использовать OpenUDID.

Так что, может быть, кто-то знает, одобрит ли Apple это? Если OpenUDID имеет все возможности UDID?

Может быть, кто-то использует этот подход и может объяснить больше?


person Streetboy    schedule 04.05.2012    source источник


Ответы (3)


Похоже, самое простое решение — просто создать свой собственный UUID:

NSString *UUID() {
    CFUUIDRef cfuuid = CFUUIDCreate(NULL); 
    NSString *uuid =  (__bridge_transfer NSString *)CFUUIDCreateString(NULL, cfuuid); 
    CFRelease(cfuuid);
    return uuid;
}

Если вам нужно сохранить это в циклах удаления/установки, поместите его в цепочку для ключей, как описано здесь: https://stackoverflow.com/a/11597291/382374

Лучше всего то, как Apple предлагает вам это сделать.

Удачи!

person Erik    schedule 24.07.2012

Мы создаем собственные UDID на основе хэша MAC-адреса устройства и идентификатора пакета. Это гарантирует, что мы можем однозначно идентифицировать наше приложение на конкретном устройстве.

Вы также можете создать хэш на основе только MAC-адреса, если вам нужен уникальный идентификатор для нескольких приложений.

На самом деле я написал сообщение в блоге о том, как это сделать, и предоставил здесь пример кода:

https://radeeccles.com/blog/create-your-own-unique-device-identifier-udid

person radesix    schedule 24.07.2012
comment
MAC-адрес будет недоступен разработчикам из iOS 7, так что в будущем это будет бесполезно - person Petesh; 08.08.2013

Насколько мне известно, это хороший способ. Точно так же SecureUDID также делает то же самое. При использовании OpenUDID UDID не меняется, даже перезапуская приложение или переустанавливая приложение. Но если вы измените какие-либо входные значения, такие как kOpenUDIDDomain или kOpenUDIDSlotPBPrefix, он генерирует новый UDID. На основе имен это создание и сохранение в PasteBoard. Если сбросить устройство тоже все равно. Я лично голосую за это.

person Ganesh    schedule 08.08.2013