Why Your App Was Rejected by Apple and How to Fix It Fast
Apple rejected your app. Here is exactly how to read the rejection notice, find the guideline, fix the specific issue, and resubmit without losing another review cycle to the same mistake.
Step 1: Read the rejection message correctly
Apple sends a rejection notice through App Store Connect under the Resolution Center. The message includes:
The guideline number
e.g. 'Guideline 2.1 — Performance: App Completeness'. This is the exact rule your app violated. Look it up on the App Store Review Guidelines page.
A description of what was observed
Apple reviewers describe what they saw. Read this carefully — it tells you the specific screen or behaviour that triggered the rejection, not just the category.
Sometimes a screenshot
For UI-related rejections, Apple often includes a screenshot of the specific screen that caused the issue.
The Resolution Center thread
You can reply to Apple through the Resolution Center to ask for clarification if the rejection reason is unclear. Apple does respond, sometimes within 24 hours.
Step 2: Fix the issue (not just the symptom)
The most common resubmission mistake is fixing only the exact item Apple mentioned without understanding the root cause. If Apple flagged one screenshot as misleading, audit all screenshots. If Apple flagged one broken link, test every link in the app. A second rejection for a related issue means another week lost.
Common rejection guidelines and exact fixes
App completeness
What it means
Apple expects a fully functional app. Beta state, demo mode, placeholder content, or features described but not implemented all trigger this.
Fix
Remove placeholder content. Ensure every feature listed in the description works. If a section is not ready, remove it from the app and the description entirely.
Misleading screenshots
What it means
Your screenshots show UI that does not exist in the submitted build. This includes older UI, dark mode not present in the app, or features behind a paywall shown without that context.
Fix
Replace every screenshot with a current recording of the actual app UI. If a feature requires a subscription, the screenshot can show it but must clearly indicate the paywall.
In-app purchase required
What it means
Your app directs users to pay outside the App Store, or includes features that should be sold through StoreKit but are not.
Fix
Use StoreKit for all in-app purchases on iOS. Remove any links to external payment systems not covered by Apple's External Link Entitlement.
Minimum functionality
What it means
Apple considers your app too simple, basically a website wrapper, or not providing enough native value to justify App Store presence.
Fix
Add native functionality. If your app is web-based, ensure it adds value beyond what a browser bookmark provides: offline access, push notifications, native OS integration.
Sign in with Apple missing
What it means
Your app offers third-party login (Google, Facebook, etc.) but does not also offer Sign in with Apple.
Fix
Implement Sign in with Apple using Apple's AuthenticationServices framework and add it alongside your existing login options.
Privacy policy missing or non-functional
What it means
Your app collects user data but has no privacy policy, the link is broken, or the policy does not cover the data your app collects.
Fix
Create a privacy policy. Link to it in App Store Connect under App Information and from within the app. Verify the link is functional before submitting.
Data handling requirements
What it means
Your app does not comply with Apple's rules on data minimisation, purpose limitation, or consent for sensitive data categories.
Fix
Audit every permission your app requests. Remove any that are not directly required by a feature. For remaining permissions, ensure the usage description explains the exact purpose.
Account deletion missing
What it means
Your app allows account creation but does not offer account deletion from within the app.
Fix
Add an account deletion option in app settings. Deletion should be permanent and delete associated data, not just deactivate the account.
Step 3: Before you resubmit
Run the AppTester Health Check — if the rejection was binary-related (debug build, signing, SDK), this will confirm the fix
Test the exact flow Apple described in the rejection on a real device, not a simulator
If your app has login: create a fresh test account and test from a logged-out state — this is how Apple tests
Write a clear response in the Resolution Center explaining what you changed and where to find the fix
If you made other changes in addition to the fix, list them — it helps reviewers prioritise their attention
If you disagree with the rejection
Apple provides an appeal process through the Resolution Center. You can also request an expedited review if you have a time-sensitive release (bug fix, legal requirement, time-limited event).
Reply in the Resolution Center with a polite, specific explanation of why you believe the rejection was in error
Cite the specific guideline and explain how your app complies
Include screenshots or screen recordings showing the relevant behaviour
If the rejection is urgent: submit an expedited review request through App Store Connect
For unresolved disputes: use the formal App Review Board appeal process
Prevent the next rejection before it happens
The Health Check scans your binary in 30 seconds. Human testing catches UX and compliance issues before a reviewer sees them.