Few things derail a launch plan like a rejected build. Review times are usually short, but each rejection means a fix, a new build and another wait. Most rejections come from a familiar set of issues that are easy to check for in advance.
The most common reasons
Incomplete or broken functionality
Crashes, placeholder content, dead buttons or features that need a login reviewers cannot get. Apple’s guidelines on app completeness are a frequent cause. Always provide working demo credentials and test the exact build you submit.
Missing or inaccurate privacy information
Both stores require you to declare what data the app collects and how it is used, through Apple’s privacy details and Google Play’s Data safety section. Declarations must match what the app, and every SDK inside it, actually does. Analytics and advertising libraries are a common source of mismatches.
Permissions without a clear reason
Requesting location, camera, contacts or background access without explaining why, or before the user reaches the feature that needs it. Ask in context and write purpose strings in plain language.
Account deletion
If users can create an account in the app, they need a clear way to delete it, including from within the app.
Payments for digital goods
Digital content and subscriptions used in the app generally must go through the platform’s in-app purchase system, subject to regional rules and exceptions. Getting this wrong is one of the most expensive rejections, because it can affect your business model.
Minimum functionality
Apps that are little more than a wrapped website, or offer very limited features, may be rejected. Make sure the app does something meaningfully better than the mobile web.
A pre-submission checklist
- Test the release build on real devices, including older ones and small screens.
- Provide demo account details and notes for anything reviewers might not understand.
- Audit every SDK and keep privacy declarations up to date.
- Check that screenshots and descriptions match the current version.
- Confirm account deletion, restore purchases and support links all work.
- Make sure the app meets each store’s current target platform and API level requirements.
Treat store review as part of QA. A short internal review against the guidelines saves days of back-and-forth.
If a build is rejected, read the reviewer’s notes carefully, reply politely with any clarification through the official channel, and fix the root cause rather than the symptom.