Paste your GitHub repo. We check it against the App Store Review Guidelines and Google Play policies, then email a plain-English list of rejection risks, each with the guideline it comes from and a copy-paste fix.
Free mini-check: top 5 blockers · public GitHub repos · Expo, React Native, Flutter, Capacitor, Swift & Kotlin
We'll email your report. See our privacy policy. Not affiliated with Apple or Google. Passing does not guarantee approval.
Apple rejected about 2.1 million of 9.1 million submissions in 2025, and most of those were "Performance" rejections, mainly App Completeness (2.1). Plenty of rejections come from things a scan can catch in a minute: a missing purpose string, no account deletion, an old targetSdk.
Every finding cites the guideline or policy it comes from.
PrivacyInfo.xcprivacy (or Expo's app.json config) present, and required-reason APIs like UserDefaults, file timestamps and boot time declared.
Apple 5.1.1 · ITMS-91053
Every permission your code uses (camera, photos, location, mic, contacts, tracking…) has a specific usage string, not blank, "TODO" or Expo's generic default.
Apple 5.1.1(ii)
targetSdk 36, required for new phone and tablet apps and updates since Aug 31, 2026. Resolved from Gradle, version catalogs, Capacitor variables or your Expo SDK.
Google Play target API policy
If people can sign up (Supabase, Firebase, Clerk…), we look for an in-app delete-account flow.
Apple 5.1.1(v) · Play account deletion
Google or Facebook login with no Sign in with Apple option.
Apple 4.8
Your privacy policy (and support URL) actually load and aren't a lorem-ipsum template.
Apple 5.1.1(i), 1.5 · Play User Data
A 1024×1024 App Store icon with no transparency, Android launcher and adaptive icons present.
Apple 2.3.8 · ITMS-90717
Lorem ipsum, template app names like "My App", and localhost, ngrok or staging servers left in the code.
Apple 2.1 App Completeness
com.example IDs, restricted Android permissions (SMS, call log, all-files, background location), debuggable builds, ads SDKs without ATT, Stripe without in-app purchase, eval(), website-in-a-WebView apps, old Expo SDK / Xcode images, iOS deployment target below 13.
Apple 2.5.2, 3.1.1, 4.2, 5.1.2 · Play permissions
Some checks use Greenlight, the open-source pre-submission scanner by Revyl (MIT License).
Coming later: build-file (.ipa/.aab) checks, a bundle with the VibeCheck security scan, and re-checks on every push.
Not affiliated with Apple or Google. Passing does not guarantee approval.
Expo and React Native, Flutter, Capacitor, and native Swift/Objective-C and Kotlin/Java projects in a GitHub repo. Built with Rork, Bolt, FlutterFlow or Cursor? If the code is in GitHub, we can check it.
Not yet for one-off checks. Public repos work today; private-repo support through our GitHub App is coming.
No. Each check runs in a throwaway machine that's deleted afterwards. We keep only the findings, for about 30 days.
It can happen: the stores review things no scan can see, and we can't guarantee approval. Payments are refundable if the check fails to run or no report is delivered. See the Store-Ready terms.