Compliance6 min read

Google Play now requires API 36

Since 31 August 2026, Google Play rejects new apps and updates that target below Android 16 (API 36). What changed, what it means for a Capacitor app, and the extension to 1 November.

The deadline has passed. Since 31 August 2026, Google Play requires new apps and app updates to target Android 16 (API level 36) or higher. Submit a build that targets anything lower and Play Console rejects it — not at review, at upload. If you have not shipped since the summer, the next release you try to push is the one that finds out.

What Google actually requires

Two separate rules are in play, and teams routinely confuse them. One governs what you maysubmit; the other governs whether an app you have already shipped stays installable.

App typeNew apps & updatesExisting apps, to stay available to new users
Phones & tabletsAPI 36 (Android 16)API 35 (Android 15)
Wear OS, Android AutomotiveAPI 35 (Android 15)API 33 or lower is already restricted
Android TV, Android XRAPI 34 (Android 14)API 33 or lower is already restricted

An app that stops being updated is not removed. It becomes invisible to new users whose device runs a newer Android than the app targets. Everyone who already installed it keeps it. That is why this failure mode is quiet: installs taper off while nothing appears broken.

If you cannot make the change in time, Play Console offers a one-time extension to 1 November 2026. It is a form, not a negotiation — request it before you need it. Permanently private apps distributed only inside an organisation are out of scope entirely.

What this means for a Capacitor app

Less than you might fear. Capacitor's Android template already ships compileSdkVersion 36 and targetSdkVersion 36, so a project generated on a current Capacitor version is compliant out of the box. The apps that get caught are the ones that pinned these values by hand, years ago, and never revisited them.

Open android/variables.gradle and read what is actually there:

ext {
    minSdkVersion = 24
    compileSdkVersion = 36
    targetSdkVersion = 36
    androidxActivityVersion = '1.9.2'
    // ...
}

If targetSdkVersion is 34 or 35, raise it to 36 and rebuild. Then check the three places a stale value hides:

  • Plugins with their own Gradle config. A community plugin that hard-codes an older compileSdk will hold your build back. Bump the plugin, or fork it.
  • Your own build.gradle overrides. Values set directly in android/app/build.gradle win over variables.gradle.
  • The Play Console warnings you have been dismissing. Billing, permissions and SDK notices surface there months before they become blocking.

Targeting 36 is not the same as running on 16

Raising targetSdkVersion tells Android to stop applying compatibility shims to your app. The behaviour changes come with it, whether or not you tested for them. The two that bite Capacitor apps hardest are edge-to-edge display and the 16 KB page size requirement — both native-side, both invisible until you run on a real Android 16 device.

See edge-to-edge display in Capacitor and the 16 KB page size requirement for the specifics, and fixing Capacitor Android build errors when the bump itself will not compile.

What an OTA update can and cannot do here

It cannot do this. targetSdkVersion lives in the native binary; changing it means a new store submission, full stop. Anyone who tells you otherwise is selling something.

What over-the-air updates are good for is the gap. Once the compliant native build is in review, every web-layer bug you find — and you will find some, because you just changed the platform contract — ships in minutes instead of waiting for the next binary. OtaKit exists for exactly that window. See shipping hotfixes over the air.

A checklist for this week

  • Read android/variables.gradle; confirm targetSdkVersion = 36.
  • Build and run on an Android 16 device or emulator — not just the CI green checkmark.
  • Walk the app: insets and status bar, file pickers, notifications, background work.
  • Check Play Console for policy warnings you have not read.
  • If you will miss it, request the extension to 1 November 2026 today.
  • Ship the native build, then keep the web layer moving over the air.

Where to go next

The Google Play OTA compliance checklist covers what Play allows once your app is current, and the setup guide gets live updates running alongside your store releases.

Related docs