Rejection guides
Why your app got rejected — and how to clear it
Rejection notices are written in guideline numbers and boilerplate. These pages translate each one into what actually went wrong, the fixes reviewers accept, and a reply you can send today.
Apple App Store 10
Review Guidelines
- 2.1
App Completeness
The reviewer could not get through your app. Either they could not sign in, something crashed, or they found content that was not finished. It is the most common rejection there is, and almost always the cheapest to fix.
- 2.3
Accurate Metadata
Your listing promises something the app does not show. Apple treats the product page as part of the product: screenshots must be real screens, the description must describe what ships today, and nothing may point at Android.
- 4.3
Spam and Duplicate Apps
Apple believes your app is one of many near-identical apps, or too close to something you or someone else already publishes. This is one of the hardest rejections to clear because it is a judgement about your concept, not a bug.
- 4.2
Minimum Functionality
The app does too little, or it is a website in a shell. Apple expects native value: something a browser tab cannot do as well.
- 5.1.1
Data Collection and Storage
Something about how you collect data does not meet Apple's rules: you asked too early, you asked without explaining, or you made leaving harder than joining.
- 5.1.2
App Tracking Transparency
Your app tracks users across apps or websites and either does not ask, asks in a way the reviewer could not find, or asks while the privacy labels say you do not track.
- 3.1.1
In-App Purchase
Digital content used inside your app has to be bought through in-app purchase. A link out to your own checkout for the same thing is what triggers this.
- 2.5.1
Private APIs and Software Requirements
Static analysis found a symbol that belongs to a private framework. Usually it is not your code at all — it is an SDK you embed.
- 1.2
User-Generated Content
If users can post, message or upload, Apple requires a specific set of safety controls — and it checks that they exist, not that you intend to add them.
- 5.2
Intellectual Property
Your app uses a name, logo, artwork or data that belongs to someone else, and Apple has no evidence you are allowed to.
Google Play 7
Developer Program Policy
- Broken Functionality
Broken or unstable functionality
The reviewer or the automated pre-launch test could not use the app. Google runs your build on real devices before a human ever sees it, so this often comes from the pre-launch report.
- Deceptive Behavior
Deceptive Behavior
Your store listing, icon or in-app content promises something the app does not deliver, or imitates something it is not.
- Permissions and APIs
Permissions and sensitive APIs
You are requesting a permission Google treats as high risk, and either the declaration is missing or the justification does not hold up.
- Data Safety
Data safety form mismatch
Google compared your declaration against what the app actually transmits, and they disagree. SDKs are the usual reason — analytics and ad libraries collect more than developers expect.
- User Data
Missing or invalid privacy policy
Google could not find a working privacy policy, or the one you linked does not describe what your app actually does with data.
- Target API level
Target API level requirement
This is a technical gate rather than a policy judgement: Play requires new apps and updates to target a recent Android API level, and raises the bar every year.
- Restricted Content
Restricted content and impersonation
Either the content itself is not allowed in the form you shipped it, or the app appears to be from someone else.
Or paste the rejection and let AppSubmit read it
The decoder takes the exact message Apple or Google sent, tells you in plain English what triggered it, writes the fix plan for your app specifically, and drafts the reply to App Review. It knows your listing, your build and your history, so the plan is not generic advice.
Decode a rejection free