Every documented reason apps get rejected from the App Store and Google Play: with step-by-step fix guides. 20 rejection reasons shown, 50+ in the full database.
App requests user data or uses analytics SDKs but does not include a privacy policy URL in the store listing or app settings.
How to fix
Add a valid privacy policy URL to your App Store Connect metadata and inside the app settings screen. The URL must be publicly accessible.
App requests sensitive permissions (camera, contacts, location) that are not justified by core functionality.
How to fix
Audit every permission. Remove any that are not essential. Request permissions lazily (only when needed) with a clear explanation shown before the system dialog.
Reviewer encounters a crash within the first 60 seconds. This is the #1 reason for rejection across both stores.
How to fix
Test on physical devices (not only emulators). Use Crashlytics. Ensure your app handles cold start, background resume, and edge cases like no internet connection.
App description promises features not present in the submitted build, or screenshots show a different UI than the actual app.
How to fix
Ensure every feature mentioned in the description is present and functional in the submitted build. Update screenshots to match the current UI exactly.
App requires login but no test credentials were provided to the reviewer. Reviewer cannot access the app's core functionality.
How to fix
Always provide a working demo account in the 'Notes for Reviewer' field in App Store Connect. Include email and password. Test these credentials before submitting.
App name or subtitle contains keywords irrelevant to the app's actual function, or are stuffed to game App Store Search.
How to fix
Keep app name and subtitle descriptive and honest. Use the keyword field (100 chars) for SEO targeting: not the name/subtitle.
App targets an Android API level below Google Play's minimum requirement for new apps or updates.
How to fix
Set targetSdkVersion to the current Play requirement (API 34+ as of 2024). Update compileSdkVersion accordingly. Test for any deprecated API usages.
App contains Lorem Ipsum text, broken URLs, 404 pages, or clearly unfinished UI sections.
How to fix
Conduct a full UI walkthrough before submission. Check every external link. Replace all placeholder content. Remove debug-only screens from production builds.
App icon is missing, uses default system icon, or does not meet size/format requirements (1024x1024px PNG for iOS).
How to fix
Create a proper app icon in all required sizes. iOS requires a 1024x1024 PNG without alpha channel. Android requires adaptive icons with foreground and background layers.
App does not provide enough utility or unique value. Often triggered by simple web-view wrappers or apps with fewer than 3 meaningful screens.
How to fix
Add genuine native features, offline functionality, or unique value. Pure web view wrappers are rejected unless the URL is your own property with App Store-specific features.
App accepts payments for digital goods or services through third-party payment processors instead of Apple's In-App Purchase system.
How to fix
Use StoreKit for all in-app digital purchases. Physical goods and services (e.g., ride-hailing, food delivery) may use alternative payment processors.
App targeting children under 13 includes ad networks, analytics SDKs, or social sharing features that violate COPPA or equivalent regulations.
How to fix
Remove all third-party analytics and ad SDKs not approved for the Kids category. Implement parental gate for external links. Do not collect PII from children.
Free trial or subscription terms are not clearly disclosed before purchase, or the price is hidden until after signup.
How to fix
Display trial length, price, and renewal terms prominently before the purchase screen. Use the store's native subscription UI. Include cancellation instructions.
App contains hate speech, sexually explicit material, graphic violence, or content that promotes dangerous activities without appropriate age ratings.
How to fix
Apply correct age ratings in the metadata. Add content warnings. Implement content moderation for user-generated content. Gate adult content behind age verification.
App uses third-party SDKs that access required reason APIs (NSUserDefaults, file timestamps, etc.) without declaring them in a Privacy Manifest file.
How to fix
Add a PrivacyInfo.xcprivacy file to your Xcode project. Declare all API usage reasons. Ensure all included SDKs also provide privacy manifests.
App is submitted to an incorrect category (e.g., a productivity tool submitted as 'Games').
How to fix
Review Apple and Google's category definitions. Choose the primary category that most accurately describes your app's main function. Update if reviews suggest otherwise.
App includes 32-bit only binaries. Apple requires all apps to be 64-bit compatible.
How to fix
Ensure your build targets arm64. Remove any static libraries that are 32-bit only. Check with `lipo -archs YourApp` to verify the binary contains arm64.
App is an obvious clone of an existing app with no differentiation, or the developer has submitted multiple near-identical apps.
How to fix
Each app must offer unique value. Add features, unique design, or target a distinct niche. Consolidate similar apps into a single app with configurable options.
App is rated lower than the content warrants (e.g., no rating for gambling mechanics or violence).
How to fix
Complete the age rating questionnaire honestly. If your app contains gambling features, simulated or real, it must be rated 17+ on iOS. Re-submit with the correct rating.
Production build contains 'TEST MODE', debug overlays, or hardcoded test API endpoints that are visible to users.
How to fix
Use build flavors or schemes to separate debug/release code. Audit your release build before submission: install it yourself and test every flow.
Our testers find rejection risks before your app hits the review queue. A $19 test beats a 2-week rejection cycle every time.