ATTrackingManager.requestTrackingAuthorization always returns .notDetermined on Mac Catalyst

In our app we show a pre-alert screen before requesting tracking authorization.

For this, we check ATTrackingManager.trackingAuthorizationStatus.

On iOS, everything works as expected.

On Mac Catalyst however, ATTrackingManager.requestTrackingAuthorization returns immediately with .notDetermined as result and without presenting a system alert.

Is this a bug, or is ATT actually not needed for Mac Catalyst apps?

Running macOS 13.3.1, app deployment target iOS 15.

Sample code:

    public func shouldAskForPermission() -> Bool {
        switch ATTrackingManager.trackingAuthorizationStatus {
        case .authorized, .denied, .restricted:
            return false
        case .notDetermined:
            return true
        @unknown default:
            return true
        }
    }

    public func requestTrackingAuthorization(completion: @escaping ((GA4Event) -> Void)) {
        ATTrackingManager.requestTrackingAuthorization { status in
            switch status {
            case .notDetermined:
               // on macOS, always .notDetermined
ATTrackingManager.requestTrackingAuthorization always returns .notDetermined on Mac Catalyst
 
 
Q