Согласно документации Apple :
Проверьте значение этого свойства перед выполнением какого-либо отслеживания рекламы.Если значение равно false
, используйте рекламный идентификатор только для следующих целей: ограничение частоты показов, атрибуция, события конверсии, оценка количества уникальных пользователей, обнаружение мошенничества с рекламой и отладка.
ИтакИсходя из этого, приведенный ниже код должен работать безопасно и соответствовать документации Apple:
var advertisingID: String? {
if ASIdentifierManager.shared().isAdvertisingTrackingEnabled == true {
return nil
} else {
return ASIdentifierManager.shared().advertisingIdentifier.uuidString
}
}
В основном проверяется, является ли она ложной, а затем, если это так, используется.Конечно, этот код можно упростить, но я пытаюсь быть максимально подробным в этом вопросе.
Этот код кажется мне правильным в соответствии с документацией Apple.
При этом,оно не соответствует названию свойства и не подходит для проектов с открытым исходным кодом на GitHub.
Ниже приведено несколько проектов с открытым исходным кодом, ссылки на которые делают это по-другому.
DeviceInfo :
return ASIdentifierManager.shared().isAdvertisingTrackingEnabled ? ASIdentifierManager.shared().advertisingIdentifier.uuidString : ""
дрифтер :
// Check whether advertising tracking is enabled
guard ASIdentifierManager.shared().isAdvertisingTrackingEnabled else {
return nil
}
// Get and return IDFA
return ASIdentifierManager.shared().advertisingIdentifier.uuidString
Как видите, вместо того, чтобы возвращать это значение, если оно false
, этирешения возвращают advertisingIdentifier
, если isAdvertisingTrackingEnabled
равно true
.Это не то, что говорится в документации Apple.Но это имеет смысл, учитывая имя свойства.
Так что мой вопрос, который является правильным?Документация Apple неверна?Или эти проекты с открытым исходным кодом делают это неправильно?Или я просто упускаю что-то очевидное, и оба проекта с открытым исходным кодом и документация Apple верны?