On this page
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
| Field | What it is | Who sees it | Rules |
|---|---|---|---|
| versionCode | A single integer (e.g. 42) | Google Play and install logic — invisible to most users | Must increase on every upload, across all tracks |
| versionName | A string like 2.1.0 | Users, shown in Settings and store listing | Free-form; no strict ordering rule |
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
Read the value in your source
Check build.gradle (versionCode property) or read android:versionCode from AndroidManifest.xml after merging.
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.
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- Version your app (Android developers)developer.android.com
- Manage app and SDK updates with in-app updates (Android developers)developer.android.com
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
