swift – ATT Permission Popup Not Showing Without Delay in iOS


I’m facing an issue with App Tracking Transparency in my iOS app. When I call ATTrackingManager.requestTrackingAuthorization immediately in application(_:didFinishLaunchingWithOptions:), the permission popup doesn’t appear. However, it works fine with a delay. Here’s my code:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    requestTrackingAuthorization()
    return true
}

private func requestTrackingAuthorization() {
    if #available(iOS 14, *) {
        ATTrackingManager.requestTrackingAuthorization { status in
            // Handle authorization status
        }
    }
}

With the following delay, the popup shows correctly:

private func requestTrackingAuthorization() {
    let delayInSeconds = 5.0
    DispatchQueue.main.asyncAfter(deadline: .now() + delayInSeconds) {
        if #available(iOS 14, *) {
            ATTrackingManager.requestTrackingAuthorization { status in
                // Handle authorization status
            }
        }
    }
}

Why doesn’t the permission popup appear without the delay, and how can I implement this without the delay?

Latest articles

spot_imgspot_img

Related articles

Leave a reply

Please enter your comment!
Please enter your name here

spot_imgspot_img