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 в том, чтобы каждый раз давать вам уникальную строку.

Другие вопросы по тегам