Thanks to Sweeper for the solution. To fix, I updated the code like this:
func requestIDFA() {
Task { @MainActor in
let status = await ATTrackingManager.requestTrackingAuthorization()
handleATTStatus(status)
}
}
func handleATTStatus(_ status: ATTrackingManager.AuthorizationStatus) {
switch status {
case .authorized:
print("ATT: User authorized tracking")
case .denied:
print("ATT: User denied tracking")
case .restricted:
print("ATT: Tracking is restricted")
case .notDetermined:
print("ATT: User has not made a choice")
@unknown default:
print("ATT: Unknown status")
}
}