A comprehensive 13-point pre-release checklist that catches misconfigurations, security issues, and policy violations before your app reaches the Play Store.
Release Readiness is a 13-point automated pre-release checklist that verifies your app is ready for production deployment. Each check inspects your project configuration, manifest, build outputs, and dependencies to produce a clear pass/fail result with actionable details.
Instead of relying on manual checklists that get skipped under deadline pressure, Release Readiness runs all 13 checks in a single pass and presents a consolidated report. It catches the misconfigurations, security issues, and policy violations that commonly slip through before a release reaches the Play Store.
Pre-release mistakes are costly — they reach production users before you can react. Here are the problems that Release Readiness solves:
debuggable. A debuggable release build exposes your app to security risks and is automatically rejected by the Play Store, yet it is one of the most common oversights.minifyEnabled. Unminified release builds are larger, slower to install, and expose your source code to reverse engineering.Release Readiness runs 13 automated checks, each targeting a specific aspect of release configuration:
Verifies that android:debuggable is set to false in the release build. Also scans for BuildConfig.DEBUG usage that may inadvertently enable debug behavior in production.
Confirms that code shrinking (R8/ProGuard) is enabled via minifyEnabled true for the release build type, along with resource shrinking (shrinkResources true) status.
Scans source code and resource files for hardcoded API keys, secrets, and tokens using pattern matching. Detects common patterns for Google Maps keys, Firebase config values, AWS credentials, and third-party SDK tokens.
Validates that targetSdkVersion meets current Google Play requirements and that compileSdkVersion is sufficient for the libraries in use. Flags deprecated API usage.
Ensures the release build is signed with a proper release keystore — not the debug keystore. Checks for v2 or v3 APK Signature Scheme (required for Play App Signing) and keystore certificate validity.
Verifies that ProGuard/R8 rules files exist and are properly referenced. Flags missing -keep rules for reflection-heavy libraries and overly broad wildcard rules.
Checks that versionCode is incremented compared to the last known release and that versionName follows semantic versioning conventions.
Goes beyond basic SDK compliance by checking runtime permission behavior changes, background execution limits, and platform-level requirements introduced in recent Android versions.
Lists all declared permissions and highlights sensitive ones (location, camera, microphone, contacts, phone state). Flags permissions that lack corresponding runtime request code and detects unused permissions.
Checks for the presence of test source sets and optionally runs unit tests to verify they pass. Reports whether tests exist, whether they pass, and the last execution timestamp.
Verifies that resource shrinking is enabled, checks for unused resources, and flags large image assets that could benefit from WebP conversion or vector drawable replacement.
Validates critical manifest attributes: android:allowBackup, android:usesCleartextTraffic, android:exported on all components (required on Android 12+), and android:networkSecurityConfig presence.
Scans the dependency tree for known vulnerabilities using public CVE databases. Flags outdated dependencies with available security patches, snapshot versions, and conflicting transitive dependencies.
Each check produces one of five status levels: PASS for checks that passed cleanly, INFO for informational notes that require no action, WARNING for items that are not blocking but should be reviewed (e.g., permissions that are declared but never requested at runtime), FAIL for critical issues that must be resolved before release, and SKIP for checks that could not be evaluated (e.g., no test source set found, or no Git history available). The overall readiness score counts only PASS checks, making it easy to see at a glance whether your build is ready to ship.
Release Readiness results are persisted between scans, so you can compare readiness across builds and track improvements over time. The history view shows a timeline of past scans with pass/fail/warning counts for each. This is especially useful during release cycles — you can verify that the number of warnings is decreasing with each build and that no new failures have been introduced by recent changes.
Run the Release Readiness check from any of these entry points:
Interpreting results:
Additional configuration is available at Settings > Tools > ADB Pro > Release Readiness, where you can:
After running the Release Readiness check, confirm that your project is truly release-ready:
Official documentation for preparing and publishing Android apps: