I'm currently in the process of submitting in the App Store, and then after I tested my build in iOS15, it stopped displaying the prompt for ATT, I also tried it to other lower versions and it worked. Is there any way to fix this?
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { status in
}}
I also checked the current app store build version, and it also doesn't work. Some people are currently experiencing this kind of issue in Reddit.
https://www.reddit.com/r/iOSProgramming/comments/pt41jz/att_prompt_not_showing_on_ios_15/
The behavior you’re seeing is the result of an intentional change introduced in iOS 15. This change requires the App Tracking Transparency authorization request to be made while the app is active (UIApplicationStateActive
). If you happen to be making several privacy related authorizations in a row*, the App Tracking Transparency request is likely stacked behind another prompt, and won’t be displayed, because it was requested while the app was not active.
(Privacy prompts are displayed out of process, temporarily placing your app into the inactive state when they're displayed.)
You’ll want to check the value of ATTrackingManagerAuthorizationStatus
to determine the status of the request, and consider requesting permission again (while active) if the result is ATTrackingManagerAuthorizationStatusNotDetermined.
.
The App Tracking Transparency prompt also won’t display if it’s called from an extension, so ensure that’s also not the case here.
Adding artificial delays doesn't directly address the issue. Instead, make the request while the app is active, don't make several authorization requests in a row, and check the status of the request to determine what the app should do next.
--
* Making several authorization requests is a row is not recommended. When requesting privacy related authorizations, such as for App Tracking Transparency, location, or camera access, apps should present one request at a time. Wait until one permission request is acknowledged before presenting another one. Ideally, wait to request permission until people actually use an app feature that requires access.
—jasonag.