iOS ATT prompt bug silently skips tracking request on slow devices, triggers App Store rejection
A developer's iOS app was rejected by Apple under Guideline 2.1 because App Review testers could not locate the App Tracking Transparency (ATT) permission prompt during testing. The root cause was the ATT API's requirement that it only displays when the app is in a UIApplicationStateActive state, meaning calls made too early during launch — while the splash screen is still dismissing — are silently ignored by iOS. Compounding the issue, the API returns an 'undetermined' status whether the user has not yet responded or whether iOS quietly skipped the prompt, providing no error or flag to distinguish the two outcomes. On the developer's own fast device, the app reached the active state in time for the prompt to appear consistently, but the reviewer's slower device exposed the race condition every time. The fix involves observing actual app state using AppState from React Native and waiting until the app is confirmed active before requesting tracking authorization, rather than relying on fixed timers.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in