iOS 7 показывает разные UDID в разных приложениях
Я использую этот код, чтобы получить UDID устройства iOS 7 в моем приложении
+(NSString*)uniqueIDForDevice
{
NSString* uniqueIdentifier = nil;
if( [UIDevice instancesRespondToSelector:@selector(identifierForVendor)] )
{ // >=iOS 7
uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else
{ //<=iOS6, Use UDID of Device
CFUUIDRef uuid = CFUUIDCreate(NULL);
//uniqueIdentifier = ( NSString*)CFUUIDCreateString(NULL, uuid);- for non- ARC
uniqueIdentifier = ( NSString*)CFBridgingRelease(CFUUIDCreateString(NULL, uuid));// for ARC
CFRelease(uuid);
}
return uniqueIdentifier;
}
Но тот же код в других приложениях показывает другой UDID. Как я могу получить уникальный идентификатор, который будет одинаковым для всего iPad независимо от приложения?
1 ответ
Решение
Ты не можешь
identifierForVendor
предоставит вам один и тот же идентификатор для приложений от того же разработчика на этом устройстве. И это не гарантировано быть постоянным; если вы удалите все приложения от поставщика, а затем переустановите их, скорее всего, вы получите другой идентификатор.
Что касается вашей реализации iOS6, это не даст вам ничего постоянного, поскольку смысл UUID в том, чтобы каждый раз давать вам уникальную строку.