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?




