Ответ 1
Вы можете использовать следующий код
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
// This will run if it is iOS6 or higher
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
// This will run before iOS6 and you can use openUDID or other
// method to generate an identifier
}
И таким образом вы можете сохранить предыдущие минимальные требования.
Этот идентификатор уникален для всех приложений от одного поставщика. Если вам нужен уникальный идентификатор устройства, вам необходимо использовать:
if (!NSClassFromString(@"ASIdentifierManager")) {
// This will run before iOS6 and you can use openUDID, per example...
return [OpenUDID value];
}
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
Предупреждение. На iOS6 есть ошибка, которая сообщает "нулевой" идентификатор, если устройство было обновлено "по воздуху" - Подробнее