Google Play targets required minimum API level
Why it matters
Google Play enforces a minimum targetSdkVersion that advances annually. As of 2026, new app submissions require API 35 (Android 15); existing apps receiving updates require API 34. Submitting below the threshold results in an automated rejection — the Play Console shows a 'Target API level requirement not met' error before any human reviewer sees the app. This is not a lint warning; it is a hard publish block. Additionally, targeting a lower API level disables Android security features that are default-on at higher API levels: scoped storage enforcement, permission upgrade flows, and exact alarm restrictions — each of which affects real user data handling.
Severity rationale
Medium because the automated targetSdkVersion check blocks Play Store submission entirely, but the fix is a single build.gradle line plus regression testing.
Remediation
Update android/app/build.gradle to meet current requirements:
android {
compileSdkVersion 35
defaultConfig {
targetSdkVersion 35
minSdkVersion 24
}
}
For Expo, set in app.json:
"android": { "targetSdkVersion": 35 }
After updating, test on an Android 15 emulator (API 35) — SDK version bumps change permission dialog flows, storage access behavior, and exact alarm scheduling. Run your existing integration tests against the new target before submitting. Document the SDK target in SUBMISSION_NOTES.md alongside the Google Play requirement version that drove the change, so the next engineer understands why the minimum exists.
Detection
- ID:
google-target-api - Severity:
medium - What to look for: Check
android/app/build.gradlefortargetSdkVersionin thedefaultConfigblock. For Expo, checkapp.jsonforexpo.android.targetSdkVersion. For Flutter, checkandroid/app/build.gradledirectly. Google Play's current requirement (as of 2026): new app submissions must target API level 35 (Android 15) or higher; existing apps receiving updates must target API level 34 or higher (this threshold advances annually). Also checkminSdkVersion— while not a submission blocker, Google Play requires apps to support at least Android 5.0 (API 21) to reach a meaningful user base. IftargetSdkVersionis set to a value below Google's current requirement, the submission will be rejected with a "Target API level" error. Also checkcompileSdkVersion— this should match or exceedtargetSdkVersion. Count all instances found and enumerate each. - Pass criteria:
targetSdkVersionis 34 or higher (meets current Google Play requirements); or the project is iOS-only. At least 1 implementation must be confirmed. - Fail criteria:
targetSdkVersionis below 34 (for new submissions as of 2026, the requirement is API 35 — but 34 is the minimum for existing apps receiving updates); ortargetSdkVersionis not set at all (defaults to a lower value). - Skip (N/A) when: iOS-only project (no
android/app/build.gradlepresent). - Detail on fail:
"android/app/build.gradle sets targetSdkVersion 33 — Google Play requires targetSdkVersion 34 or higher for app updates as of 2024, and 35 for new submissions as of 2026". - Remediation: Failing to meet the target API level requirement blocks Play Store submission — no human review occurs, it is an automated rejection.
- Update
android/app/build.gradle:android { compileSdkVersion 35 defaultConfig { targetSdkVersion 35 minSdkVersion 24 // Covers ~97% of active Android devices as of 2026 } } - After updating
targetSdkVersion, test on Android 15 (API 35) — behavior changes between SDK levels may cause regressions - For Expo, update
app.json:"android": { "targetSdkVersion": 35 } - For Flutter, update both
android/app/build.gradleand runflutter build appbundleto verify
- Update
External references
- external · google-play-target-api-requirement — Google Play — Target API Level Requirements
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-metadata-listing·automated