在某些设备上 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")
})
}
提前感谢任何线索。