ReferencePlay Console

Version Code & Version Name: Rules, Collisions, and Cross-Track Behavior

How Android version codes work, why they must increase across all tracks, common collision scenarios, and the difference between versionCode and versionName.

Reviewed August 23, 2026Low change risk2 min read2 official sources

Written & maintained by AppsTestLabAbout AppsTestLabHow we research

Numbers ascending in sequence representing version codes across tracks
Numbers ascending in sequence representing version codes across tracks
On this page
  1. Version code vs version name
  2. Where collisions happen
  3. Checking your codes before you upload

The version code is an integer Play uses to decide which release is newer — and it's the single number that must always go up, across every track, for every upload. Confusing it with the human-readable version name, or bumping it inconsistently across tracks, is why testers pull down the wrong build and why uploads get rejected.

Version code vs version name

versionCode vs versionName
FieldWhat it isWho sees itRules
versionCodeA single integer (e.g. 42)Google Play and install logic — invisible to most usersMust increase on every upload, across all tracks
versionNameA string like 2.1.0Users, shown in Settings and store listingFree-form; no strict ordering rule
versionCode vs versionName

Only the version code drives upgrade and track-selection logic. The version name is purely informational — a higher versionName with a lower versionCode will never reach users as an update.

Where collisions happen

  • Reusing a version code after a rollback or a discarded draft — Play sees the same code twice and rejects the second upload.
  • Shipping a hotfix to production at 44 while a closed test at 43 is still promoted — testers would get the lower code from the wrong track.
  • Forgetting that internal, closed, open, and production all share one version-code namespace on the account.

Checking your codes before you upload

  1. Read the value in your source

    Check build.gradle (versionCode property) or read android:versionCode from AndroidManifest.xml after merging.

  1. Compare across tracks

    In Play Console, open each track's release page and note the latest version code. Your new upload must be higher than the max across all of them.

  1. Bump once, everywhere

    If you promote a build across tracks, keep the same version code — don't rebuild with a new one unless you're shipping new changes.

Sources & references

Official Google documentation

These links open Google's official Play Console Help pages used to verify this guide. AppsTestLab guidance is independent and not affiliated with Google.

Get help doing this

AppsTestLab can run your testing for you

Ready to test?

5,000+ apps tested. A 99% historical approval rate. And a 100% money-back guarantee.

Tell us about your app and we'll confirm the right testing approach. One WhatsApp message to start, no complicated setup.

Guarantee applies to eligible app testing orders · Google makes the final approval decision

Chat on WhatsApp