Why your App Tracking Transparency prompt doesn't show up (and how it got my app rejected)
App Review rejected my iOS app under Guideline 2.1. The note said reviewers were unable to locate the App Tracking Transparency permission request when they tested the build. The prompt worked on my iPhone. Every single launch. It just didn't work on theirs. The cause turned out to be two properties of the ATT API that are easy to miss individually and genuinely nasty in combination: together…
iOS rejected my iOS app under Guideline 2.1 due to a lack of visibility of the App Tracking Transparency permission request during testing. The prompt worked on my iPhone but not on the reviewer's device. The problem stemmed from two properties of the ATT API: iOS only presents the ATT prompt when the app is active, and iOS doesn't provide a clear indication when it declines to present the prompt, returning "notDeterminated" instead of an error or a specific signal.
This combination of factors led to a bug that was invisible on fast devices but reproducible on slow ones. The issue was compounded by treating "notDeterminated" as a final answer, rather than retrying, which prevented the prompt from ever appearing. The solution involved waiting for the app to reach an active state before requesting permission, implementing a timeout to prevent the issue from hanging the app, and retrying when the API returned "notDeterminated" instead of giving up.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.