# Why was my app rejected by Apple or Google Play?

> Paste an App Review or Google Play rejection and get it in plain English: what the guideline means, how to fix it, and a reply to send. Free.

Usually for one of a few well-known reasons: the app feels like a website (Guideline **4.2**), it crashed or the reviewer couldn’t sign in (**2.1**), it looks like other apps (**4.3**), or a privacy rule — account deletion, a permission prompt, a privacy policy (**5.1.1**). Paste the message from App Store Connect or Google Play: this explainer says what the guideline means, how to fix it, and what to reply. Nothing is uploaded.

- Tool: Rejection explainer. Input: Paste the rejection. Free, no signup. Runs entirely in the browser; nothing is uploaded.
- Interactive version: https://capwr.app/free-tools/app-store-rejection-explainer
- All free tools: https://capwr.app/free-tools
- Last updated: 2026-10-14

## How to use it

1. Copy the whole message: in App Store Connect, open the rejected submission; for Google Play, the email or Play Console → Policy status.
2. Paste it. Each rejection it recognises gets its own card, in the order the message lists them.
3. Fix each one, then copy the reply for the reviewer and, when the fix is in the code, the prompt for Lovable, Bolt or Cursor.

## App Store rejections it explains

| Guideline | Rejection |
| --- | --- |
| Guideline 4.3 | [Spam: the app looks like many others](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-3-spam) |
| Guideline 4.2 | [Minimum Functionality: it looks like a website in an app](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-2-minimum-functionality) |
| Guideline 2.1 | [App Completeness: it crashed or something didn’t work](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-1-app-completeness) |
| Guideline 2.1 | [Information Needed: give App Review a way in](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-1-information-needed-demo-account) |
| Guideline 4.0 | [Design: a poor experience, often sign-in in Safari](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-0-design) |
| Guideline 2.3.3 | [Accurate Metadata: screenshots don’t show the app in use](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-3-screenshots) |
| Guideline 2.3.10 | [Accurate Metadata: mentions of Android or other platforms](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-10-other-platforms) |
| Guideline 2.3.8 | [Accurate Metadata: the icon or name doesn’t match](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-8-app-icon) |
| Guideline 4.8 | [Login Services: add Sign in with Apple](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-8-sign-in-with-apple) |
| Guideline 5.1.1(v) | [Account deletion: let people delete their account in the app](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-v-account-deletion) |
| Guideline 5.1.1 | [Purpose string: explain why you need the permission](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-purpose-string) |
| Guideline 5.1.1 | [Data collection: don’t force sign-up for features that don’t need it](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-sign-up-required) |
| Guideline 5.1.1(i) | [Privacy policy: link missing or broken](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-i-privacy-policy) |
| Guideline 5.1.2 | [Tracking: ask first with App Tracking Transparency](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-2-app-tracking-transparency) |
| Guideline 3.1.1 | [In-App Purchase: digital goods must use Apple’s payments](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-3-1-1-in-app-purchase) |
| Guideline 3.1.2 | [Subscriptions: required information is missing](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-3-1-2-subscriptions) |
| Guideline 1.5 | [Developer Information: the support URL doesn’t work](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-1-5-support-url) |

## Google Play rejections it explains

| Policy | Rejection |
| --- | --- |
| Broken Functionality | [Broken Functionality: it crashed or didn’t load](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-broken-functionality) |
| Spam and Minimum Functionality | [Minimum Functionality: a webview of a website](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-webview-minimum-functionality) |
| User Data — privacy policy | [Privacy policy: missing or invalid](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-invalid-privacy-policy) |
| Data safety | [Data safety: the form doesn’t match the app](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-data-safety-inaccurate) |
| App access | [App access: Google couldn’t sign in](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-missing-login-credentials) |
| User Data — account deletion | [Account deletion: in the app and on the web](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-account-deletion) |
| Photo and Video Permissions | [Photo and video permissions: use the photo picker](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-photo-video-permissions) |
| Payments | [Payments: digital goods must use Google Play Billing](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-payments-policy) |
| Metadata | [Metadata: the listing is misleading or stuffed with keywords](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-metadata-policy) |
| Production access | [Production access refused: more testing needed](https://capwr.app/free-tools/app-store-rejection-explainer/google-play-production-access-denied) |

## Rejected or Metadata Rejected?

- **Rejected** — the app has to change. Fix the code, upload a new build, select it on the version, and resubmit.
- **Metadata Rejected** — only the listing is wrong: screenshots, description, URLs, review notes. Edit it in App Store Connect and resubmit the same build.

Google Play works by release: fix the app or the listing, then send the release for review again. If you think Google got it wrong, appeal from **Policy status** in Play Console.

## Before you resubmit

- Install the exact build from TestFlight or internal testing on a real phone, delete it, reinstall it, and sign up as a new user — that is what reviewers do.
- Reply even when you upload a new build: what changed, and where the reviewer can see it.
- Wrapped web apps that fixed one rejection often get **4.2** next. Run the [Guideline 4.2 self-audit](https://capwr.app/free-tools/apple-guideline-4-2) first.
- Icon or screenshot complaints: the [app icon generator](https://capwr.app/free-tools/app-icon-generator) and the [screenshot size checker](https://capwr.app/free-tools/app-store-screenshot-sizes).
- Google refused production access after the closed test? The [12-tester countdown](https://capwr.app/free-tools/google-play-12-testers) drafts better answers.

## In CapWrapp

CapWrapp users have this explainer in every app’s Toolbox. Once the fix is pushed, CapWrapp builds the commit on GitHub’s Mac machines, uploads it to TestFlight and Google Play, and sends the build you pick back to review from the Releases page. [Get started free](https://capwr.app/login).

## FAQ

### Why was my app rejected by Apple?

Web-based apps are mostly rejected for a handful of guidelines: 4.2 (it feels like a website), 2.1 (a crash, or a login the reviewer couldn’t get past), 4.3 (it looks like other apps), 5.1.1 (account deletion, permission prompts, privacy policy) and 3.1.1 (digital purchases outside In-App Purchase). The message in App Store Connect names the guideline; paste it here to see what it means and how to fix it.

### How do I reply to an App Store rejection?

In App Store Connect, open the app, then the rejected submission, and reply in its message thread. Say what you changed and where the reviewer can find it. If the fix needed code, upload a new build, select it on the version, and resubmit. If only the listing was wrong (Metadata Rejected), edit it and resubmit the same build.

### How long does App Review take after I resubmit?

Resubmissions join the same queue as new submissions; Apple says most are reviewed within 24 hours. For a critical fix you can request an expedited review in App Store Connect.

### Can I appeal an App Store rejection?

Yes. Reply first with the details the reviewer missed. If you still disagree, submit an appeal to the App Review Board from App Store Connect’s contact page. An appeal works when the reviewer misunderstood the app, not when the app breaks the guideline.

### Does it work for Google Play rejections?

Yes. Paste the email or the text from Play Console → Policy status. It covers Broken Functionality, webview spam and minimum functionality, privacy policy, Data safety, App access, account deletion, photo and video permissions, Payments, Metadata, and refused production access.

### Is my rejection message uploaded?

No. It is matched in your browser against the known rejections. Nothing is sent to CapWrapp or anyone else.

## Related free tools

- [Is your Lovable app ready for the App Store?](https://capwr.app/free-tools/lovable-capacitor-checker) — Paste package.json. See what is set up, what is missing, and get a prompt to paste back into Lovable.
- [Is your Bolt app ready for the App Store?](https://capwr.app/free-tools/bolt-capacitor-checker) — Same checks as the Lovable checker, tuned for Bolt’s Vite projects and Next.js templates.
- [Is your Base44 app ready for the App Store?](https://capwr.app/free-tools/base44-capacitor-checker) — Check a Base44 export: the frontend Capacitor wraps, the backend that stays hosted, and common setup mistakes.
- [Can this GitHub repo become an iPhone and Android app?](https://capwr.app/free-tools/github-repo-checker) — Paste a public repo URL. The same checks as the builder checkers, read straight from GitHub.
- [Capacitor appId and bundle ID validator](https://capwr.app/free-tools/capacitor-config-validator) — Check an appId against Apple and Android rules at once, plus webDir and server.url in capacitor.config.
- [Do you need a Mac to publish an iPhone app?](https://capwr.app/free-tools/do-i-need-a-mac) — Three questions. What you need for TestFlight and Google Play — accounts, costs, and whether a Mac is one of them.
- [Will Apple reject your app as just a website?](https://capwr.app/free-tools/apple-guideline-4-2) — Six questions on Apple’s Minimum Functionality rule — the usual reason wrapped web apps get rejected.
- [App icon generator for iPhone and Android](https://capwr.app/free-tools/app-icon-generator) — Drop a logo or type an emoji. Get the iOS 1024 icon, Android adaptive and round icons, and both store icons — in Capacitor’s folders.
- [Why did my iOS or Android build fail?](https://capwr.app/free-tools/build-error-explainer) — Paste a failed build or upload log. Get the known error, what it means, and how to fix it — signing, versions, Gradle, uploads.
- [App Store and Google Play screenshot sizes](https://capwr.app/free-tools/app-store-screenshot-sizes) — Drop screenshots, see which store slots they fit, and export the missing sizes as PNGs both stores accept.
- [Google Play 12 testers, 14 days: when can you publish?](https://capwr.app/free-tools/google-play-12-testers) — Enter your testers and the day the 12th joined. Get the date you can apply for production, a reminder, and draft answers.

## About CapWrapp

CapWrapp turns a web app on GitHub — built with Lovable, Bolt, Base44, Cursor or by hand — into iPhone and Android apps. It adds Capacitor if the repo needs it, signs the builds, and ships them to TestFlight and Google Play from GitHub Actions, with no Mac or Xcode on your side. [Get started free](https://capwr.app/login) · [Lovable to App Store guide](https://capwr.app/guides/lovable-to-app-store)
