The App's Done. So Why Does It Keep Failing Review?
Last time I talked about the four walls between building fast with AI and actually shipping. Today, the one that breaks the most people — review and policy. The code is finished, and this is where you stay stuck for weeks.
Review doesn’t check “does it work”
I had this backwards at first too. Figured if the app ran fine, it’d pass review. Nope. Review isn’t asking “does this work,” it’s asking “which policies does this app have to follow?”
So no matter how perfect the code is, if the policies that should come with it aren’t in place, you’re blocked. AI writes brilliant code, but it doesn’t handle the things that tag along with that code.
The fun part: every feature summons a different check
Let me stack features onto that “convenience-store BOGO deals app” one at a time. It clicks fast once you see it.
“I want to save my favorite products.” → Saving needs login, and the moment you log someone in, that’s “personal data.” A privacy policy, a consent screen, and rules for when and how you delete it (disposal) all follow as a set.
“I want to give points for checking deals.” → Points are a kind of currency, so you have to spell out clearly how they accrue and when they expire. Daily check-ins work the same way.
“I want to help people find a nearby store.” → The instant you use location, a separate location consent gets attached.
“I want to push an alert when a deal starts.” → Promotional notifications need an opt-in, and to send them at night you need a separate after-hours consent on top of that.
And then there’s the copy. Hand it to AI and you get “Always a deal!”, “Lowest price guaranteed!” — bold and snappy. Looks great. And these absolute claims are regulars on the rejection list.
Once you see this, it lands. On screen it’s adding a single button, but behind it a whole bundle of policy comes along for the ride. That’s exactly why the code takes half a day and approval doesn’t.
Oh, one more. If you go “eh, I’ll just slap example.com in there” for documents like the privacy policy or terms — that gets flagged too. It has to be a real page that actually opens, with the operator’s info on it. I didn’t know that, and it stalled me again right at the finish line.
So here’s what clicked
If you build all of these walls and then hit each one after the fact, your launch keeps slipping. You finish every feature and then go “oh, there’s no consent screen,” “oh, this copy isn’t allowed.”
If I'd asked "what check does this feature summon?" before building, I'd have saved weeks.
Policy isn’t an annoying thing you “handle” at the end — it’s part of the design you sketch out while planning. The moment you decide which features go in is, secretly, the moment you decide which policies this app will have to carry.
Review checks policy, not code. So sketch out "what check does this summon?" before you add a feature, and shipping gets a whole lot faster.