App Rejection Fix

Free tool · text only · nothing stored

Android Update Readiness Checker

Paste a build file and the checker reports what it can read about the Google Play requirements that block updates: target API level, Play Billing Library version, the 16 KB page-size risk, the AGP/Gradle toolchain, sensitive permissions and deprecated configuration. It reads text only — nothing is executed, no dependency is resolved, nothing is uploaded or stored, and the pasted text never reaches analytics.

build.gradle or build.gradle.kts (the module-level one with the android { } block), gradle/libs.versions.toml, gradle-wrapper.properties, pubspec.yaml, package.json, Podfile.lock or AndroidManifest.xml. You can paste several files one after another.

Paste configuration, not secrets

Build files sometimes contain keystore passwords, API keys or tokens. Remove them before pasting — here and anywhere else. The checker refuses input that contains private keys or certificates, and it never needs credentials to read a version number.

What the checker looks for

Requirements the checker reads from a pasted build file
Requirement What can be read from text What cannot
Target API level 36 targetSdk / compileSdk values, including version catalogs Whether the app still works when it targets 36 — that needs a device test
Play Billing Library 8 A declared billing dependency version, or the wrapper (Unity IAP, in_app_purchase, react-native-iap, RevenueCat) that decides it The resolved version behind a wrapper — run ./gradlew app:dependencies
16 KB page sizes AGP and NDK versions, and dependencies that usually ship native libraries Actual .so alignment — that is a property of the built bundle
Toolchain AGP, Gradle, Kotlin, framework versions and deprecated build settings Whether every plugin compiles after the upgrade
Sensitive permissions Permissions declared in a pasted manifest Whether Play accepts the declared use — that is a policy review
Signing That a signing config exists, and hard-coded passwords (which it warns about) Whether the key matches the one Play expects

What happens to what you paste

  • The text is analysed in the same request and then discarded. It is not written to the database, the session or the log.
  • Nothing is executed, compiled, resolved or downloaded. The checker never contacts a package registry.
  • Analytics receives only a category (for example “blockers found”) and counts — never the text, never a dependency name.
  • Input containing a private key or certificate is refused rather than analysed.
  • If you would rather not paste anything at all, send the Play Console message instead and we will ask only for what is needed: Get My Free Update Review.

Each finding links the guide that explains the requirement and the work it implies: target API level 36, Play Billing Library 8, 16 KB page sizes, sensitive permissions, signing keys and the legacy app update hub. The dated list is on app publishing deadlines.