DEV Community

Cover image for I open-sourced the app store rejection playbook so you stop guessing
Mirza Iqbal
Mirza Iqbal

Posted on

I open-sourced the app store rejection playbook so you stop guessing

You shipped it.

Weeks of work, the build uploaded, the coffee earned.

Then the email lands.

"We noticed your app does not comply with..."

If you build for the App Store or Google Play, you know that exact drop in your stomach. I do too. You reread the message four times, and it still does not tell you the real fix. It cites a guideline number. You open the guideline. It cites three more.

Here is the part nobody says out loud.

That rejection was almost never bad luck.

It was a check you did not know to run.

For a long time I treated app review like weather. Something that happened to me. I would submit, wait, get rejected, guess at the fix, resubmit, and lose another week. On Apple that is a week. On Google the resubmit loop is worse, because a careless second submission does not only cost time, it nudges your whole developer account toward suspension.

So I stopped guessing and started writing it all down.

Every reason Apple rejects. Every reason Google rejects. The trigger, the exact rule, and the concrete fix, one row at a time. It grew into an open playbook, and I put it here for you to use.

https://github.com/mjmirza/app-store-compliance

Here is what you actually get from it.

Two checks stop most rejections. A demo account that truly works against a live backend, and a privacy declaration that matches what your app does at runtime, including every third-party SDK. Verify only those two and you clear the majority of first-round rejections. The playbook makes both impossible to forget.

The legal layer store review will not catch, but a regulator will. Store approval is not the same as legal approval. If your app reaches EU users, the EU AI Act wants an AI-disclosure by 2 August 2026. The European Accessibility Act is already in force. US COPPA and the state age laws apply on top. None of this shows up as a store rejection. It shows up later as a fine. The playbook carries the dated, sourced rules so you are not reading a statute at midnight.

The platform mechanics that changed under you. macOS notarization for anything shipped outside the Mac App Store. Play Billing version 8 before 31 August 2026. Android developer verification deadlines landing this year. Foreground Service types that crash at runtime if you miss the declaration. Each one is a silent rejection waiting in your next update.

The point of all of it is one sentence.

You run the checklist before you submit, so the rejection email never arrives.

It is free. It is open source. You can read it, fork it, or paste the checklist into your own release process. If a pattern helped you, keep the credit and add your own.

I did not build this because I am fearless about compliance. I built it because I was tired of feeling stupid in front of a rejection email I could have prevented. Sixteen years around regulated enterprise work taught me one thing that applies here. The teams a rule hurts are the ones who meet it at submission time. The teams it merely bills are the ones who designed for it on day one.

You get to be the second kind, starting with your next build.

Your turn

What is the one app store rejection that cost you the most time?

If this was useful

I work through this in public, the wins and the freezes both, mostly on LinkedIn and YouTube. If the real version of building in the open is useful to you, that is where it lives. Find me on X, GitHub, and the work at next8n.com.

Top comments (0)