Я реализовал эти методы, чтобы получить advertisingIdentifier
и identifierForVendor
:
- (NSString *) advertisingIdentifier
{
if (!NSClassFromString(@"ASIdentifierManager")) {
return [OpenUDID value];
}
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}
- (NSString *) identifierForVendor
{
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
}
return @"";
}
- (BOOL)isAdvertisingTrackingEnabled
{
if (NSClassFromString(@"ASIdentifierManager") && ![[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
return NO;
}
return YES;
}
На симуляторе все работает так, как должно быть, и я могу получить представление двух строк.
Но, когда я запускаю iPhone 3GS с iOS 6.0 (10A403), эти 2 метода возвращают "00000000-0000-0000-0000-000000000000" в качестве идентификатора. Уже сделано:
- Перезагрузили устройство
- Удалено приложение и переустановлено
- Создан и установлен Ad-Hoc, установлен, удален и установлен снова
- Запустите этот код из другого приложения
- Протестировано на iPad 2 с iOS 6.0 (10A403), и все прошло ok (у меня есть правильные идентификаторы)