App Store rejection code reference
A filterable table of App Store and Google Play guideline numbers with the rejection language commonly quoted against each, a plain-language cause, and a link to the current guideline text. Checked against the published guidelines periodically.
Data last verified 28 Jul 2026
| Guideline | Platform | Cause | Fix | Verified |
|---|---|---|---|---|
| 2.1 | Apple | App crashes, has broken links, placeholder content, or other bugs that make it not ready for review. | Test the full build end-to-end on a real device and remove any placeholder or incomplete screens before submitting. | 20 Jul 2026 |
| 2.3.1 | Apple | Screenshots, previews, or descriptions don't accurately reflect the app's actual current functionality. | Update store listing assets to show the real, current UI and remove descriptions of features the build doesn't yet support. | 20 Jul 2026 |
| 3.1.1 | Apple | External purchase link shown without qualifying for the entitlement that permits it. | Apply for the External Purchase Link Entitlement and follow its disclosure requirements exactly. | 25 Jul 2026 |
| 4.2 | Apple | App provides only a website wrapper or extremely limited functionality with no native platform value. | Add native functionality that uses platform APIs directly, not just a webview around an existing site. | 20 Jul 2026 |
| 4.3 | Apple | App is judged too similar to existing apps on the store ("spam"), often triggered by template-derived UI with minimal differentiation. | Add genuinely distinct functionality and remove template-identifiable UI chrome before resubmitting. | 09 Jul 2026 |
| 5.1.1 | Apple | App requests data or permissions it doesn't clearly need for its stated functionality, or is missing a required privacy disclosure. | Remove unused permission requests and ensure the privacy nutrition label matches what the code actually collects. | 20 Jul 2026 |
| Ads | Ads shown are disruptive — e.g. full-screen interstitials with no clear close control, or ads disguised as system dialogs. | Bring ad placements in line with the Ads policy: an always-visible close control, and no ad disguised as a system notification. | 20 Jul 2026 | |
| Data safety | Declared data-safety form doesn't match SDK behaviour actually observed in the build. | Audit every bundled SDK's data collection against the data-safety form before each submission that adds a dependency. | 28 Jul 2026 | |
| Deceptive Behavior | App's behavior misrepresents itself — e.g. impersonating another app or making unauthorized device-settings changes. | Ensure app identity, icon, and behavior match the store listing exactly, and remove any device-settings change made outside direct user action. | 20 Jul 2026 | |
| Permissions | App requests a sensitive permission (e.g. SMS, Call Log) without meeting the approved use-case list for it. | Remove the permission or document an approved use case in the Permissions Declaration Form at submission. | 20 Jul 2026 | |
| Restricted Content | App content falls into a restricted category without the declarations that category requires. | Review the Restricted Content policy and complete the specific content-rating and declaration steps it requires before resubmitting. | 20 Jul 2026 |
How this data is sourced
Each row is checked against the platform's own currently published guideline text, linked from the guideline number. This is reference data maintained editorially, not a one-time pull — entries are reviewed and updated as platform guidelines change, not frozen at publish time.