如何解决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")
})
}
提前感谢您提供任何线索。
解决方法
这是操作系统级别的问题,已在 14.5.1 版本中修复,因此只需更新您的操作系统即可在首次启动时获得 ATT 对话框。
iOS 和 iPadOS 14.5.1 发行说明
此更新修复了 App Tracking Transparency 的一个问题,其中一些 以前禁用允许应用程序请求跟踪的用户 重新启用后,设置可能不会收到来自应用程序的提示。这 更新还提供重要的安全更新,推荐用于 所有用户。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。