Как некоторые говорили, в iOS5 это устарело:
NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
У Apple теперь есть 3 API для получения UUID (универсального уникального идентификатора) устройства:
Альтернатива 1 (класс NSUUID):
NSString *udid = [[NSUUID UUID] UUIDString];
Альтернатива 2 (класс UIDevice):
NSString *udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
Альтернатива 3 (класс ASIdentifierManager, требуется среда AdSupport):
NSUUID *UUID = [[ASIdentifierManager sharedManager] advertisingIdentifier];
NSString *udid = [UUID UUIDString];
Но все они буквенно-цифровые, и уникальный идентификатор типового устройства состоит только из цифр. Таким образом, эти 3 API бесполезны, а старый [[UIDevice currentDevice] uniqueIdentifier] все еще работает в iOS6, но как долго?
Если предупреждение «устарело» вас раздражает, просто добавьте:
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
Надеюсь, это поможет!