Question about the ATTrackingManager.AuthorizationStatus logic

Hi everybody

I'm actually playing with ATT framework in Xcode 12 beta and I'm experiencing a weird behavior.

Let's have a precise use case:
  1. In your device running under iOS 14, go to Settings > Privacy > Tracking and then switch off Allow Apps to Request to Track

  2. Remove your app and reinstall it again

  3. Open it

  4. Before calling the requestTrackingAuthorization method, call the trackingAuthorizationStatus property

I personally expect it to be restricted but it's denied

It means that we can't make the difference between the following cases:
  1. Case 1: the app already requested the tracking authorization (by calling requestTrackingAuthorization) and the user said no,

  2. Case 2: the app never managed to request the tracking authorization and it's not even present in the list of the apps using ATT framework.

In another hand, I never managed to get the restricted status.

Did someone knows more about ATT framework? Do you think like me that this is a bug and will be fixed in the release version?


In my tests it seems that the system is persisting a status per app, even if removed and reinstalled.

On a real device, which had tracking globally disabled, our app received the the "restricted" status. Obviously in this scenario the prompt cannot be shown.

Then after globally enabling tracking (aka "Allow app to request to track"), the app asked once via the ATT prompt. Afterwards we were never able to get a different status then "accepted" or "denied", even after removing and reinstall the app.

Also "Reset Location and Privacy" in "Settings -> General -> Reset" didn't reset this status.

If everyone found a way to reset the status this would be really helpful.
Question about the ATTrackingManager.AuthorizationStatus logic
 
 
Q