APP STORE + GOOGLE PLAY PRE-SUBMISSION CHECK

Will your app get rejected?

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.

Optional: privacy policy & support URLs (we'll check they load)

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.

Rejections are the boss fight after the build

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.

What we check

Every finding cites the guideline or policy it comes from.

privacy_manifest

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

purpose_strings

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)

android_target_sdk

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

account_deletion

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

sign_in_with_apple

Google or Facebook login with no Sign in with Apple option.

Apple 4.8

privacy_and_support_urls

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

icons

A 1024×1024 App Store icon with no transparency, Android launcher and adaptive icons present.

Apple 2.3.8 · ITMS-90717

placeholders_and_dev_urls

Lorem ipsum, template app names like "My App", and localhost, ngrok or staging servers left in the code.

Apple 2.1 App Completeness

review_risks

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).

Pick your difficulty

EASY MODE

Mini-check

$0
  • ✓ Every check runs
  • ✓ Your top 5 rejection risks, with fixes
  • ✓ Count of everything else we found
Run free check
BEFORE YOU SUBMIT
NORMAL MODE

Full Store-Ready report

$29 one-time
  • ✓ iOS and Android in one report
  • ✓ Every finding, every severity
  • ✓ Guideline reference + step-by-step fix for each
  • ✓ A "passed" list so you know what's already fine
Get full report: $29

Coming later: build-file (.ipa/.aab) checks, a bundle with the VibeCheck security scan, and re-checks on every push.

What a scan can't tell you

Not affiliated with Apple or Google. Passing does not guarantee approval.

FAQ

Which frameworks work?

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.

Can you check private repos?

Not yet for one-off checks. Public repos work today; private-repo support through our GitHub App is coming.

Do you keep my code?

No. Each check runs in a throwaway machine that's deleted afterwards. We keep only the findings, for about 30 days.

What if I get rejected anyway?

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.