ATTrackingManager возвращает .denied при первой установке с параметром Разрешить приложениям запрашивать отслеживание в

На некоторых устройствах trackingAuthorizationStatus всегда возвращает значение .denied, даже если переключатель Разрешить приложениям запрашивать отслеживание включен. Это означает, что приложение никогда не сможет запросить разрешение на отслеживание. В «Настройки» > «Конфиденциальность» > «Отслеживание приложения» нет переключателя для повторного включения разрешения. У нашей команды есть несколько тестовых устройств, и два iPhone одной модели с одинаковой версией iOS дают разные результаты. Один из них может отображать приглашение requestTrackingAuthorization и ведет себя так, как ожидалось, в то время как два других остаются в состоянии ATTrackingManagerAuthorizationStatusDenied, несмотря ни на что. Мы пробовали «Общие» > «Сброс» > «Сбросить местоположение и конфиденциальность», а также удаляли приложение, переустанавливали, перезапускали, обновляли ОС. Ничто не исправляет состояние .denied. Вот код:

    override func viewDidLoad() {
    super.viewDidLoad()
    let status = ATTrackingManager.trackingAuthorizationStatus
    switch status {
    case .authorized:
        idfaLabel.text = "Yay"
    case .denied:
        idfaLabel.text = "Goodbye IDFA"
    case .notDetermined:
        idfaLabel.text = "You've got a choice to make"
    case .restricted:
        idfaLabel.text = "can't help you there"
    default:
        print("New case???")
    }
    ATTrackingManager.requestTrackingAuthorization(completionHandler: {_ in
        print("Tracking Requested")
    })
}

Заранее спасибо за любые подсказки.


person naffenuf    schedule 04.02.2021    source источник
comment
Хотя я не могу помочь, я тоже видел это. Мой личный телефон возвращает .denied, в то время как мой тестовый телефон работает должным образом. Я пробовал некоторые другие телефоны, которые также всегда получают .denied. Единственная общая черта, которую я обнаружил, заключалась в том, что телефоны, которые возвращают .denied, в какой-то момент имели 14,3, в то время как мой тестовый телефон был на 14,2 и сразу перешел на 14,4.   -  person Paulw11    schedule 05.02.2021


Ответы (1)


Это проблема на уровне ОС, которая исправлена ​​в выпуске 14.5.1, поэтому просто обновите свою ОС, чтобы получить диалоговое окно ATT при первом запуске.

Примечания к выпуску для iOS и iPadOS 14.5.1

Это обновление устраняет проблему с прозрачностью отслеживания приложений, из-за которой некоторые пользователи, которые ранее отключили «Разрешить приложениям запрашивать отслеживание» в настройках, могут не получать запросы от приложений после повторного включения. Это обновление также содержит важные обновления безопасности и рекомендуется для всех пользователей.

person Abhishek Aryan    schedule 04.05.2021