Version Code: Was es ist, numerischer Identifikator und Updates

Autor: IT Sectr Veröffentlicht: 2026-04-17 Lesezeit: 8 Min.

Version Code ist eine positive ganze Zahl in der Android-Entwicklung, die jeden neuen Anwendungs-Build eindeutig identifiziert. Google Play und das Android-System verwenden den Version Code, um festzustellen, ob ein Update erforderlich ist: Ist der Code des neuen Builds größer als der installierte, wird der Update-Prozess gestartet. Laut Android Developer Documentation wird der Version Code dem Benutzer nicht angezeigt und dient ausschließlich der internen Versionsnummerierung.

Wichtige Punkte

  • Version Code — numerischer Build-Identifikator einer Android-App für Google Play
  • Inkrement — jeder neue Build muss einen größeren Version Code als der vorherige haben
  • Version Name — Zeichenfolgen-Version für den Benutzer, beeinflusst den Update-Mechanismus nicht
  • Konfiguration erfolgt in build.gradle über das Feld versionCode
  • Grenze — der maximale Version Code-Wert beträgt 2100000000

Was ist der Version Code in Android

Version Code ist eine ganze Zahl vom Typ Integer, die jedem Build einer Android-Anwendung zugewiesen wird. Im Gegensatz zum Version Name wird der Version Code dem Benutzer nicht angezeigt und wird ausschließlich vom Betriebssystem und Google Play verwendet, um Versionen bei der Installation von Updates zu vergleichen.

Format des Version Code

Version Code muss eine positive ganze Zahl im Bereich von 1 bis 2100000000 sein. Jeder nachfolgende Build muss einen streng größeren Version Code als der vorherige haben. Wenn ein Entwickler einen Build mit Version Code 5 veröffentlicht hat, kann die nächste Veröffentlichung 6, 7 oder eine beliebige Zahl größer als 5 verwenden, aber nicht 4 und nicht erneut 5.

Entstehungsgeschichte

Google führte die Trennung von Version Code und Version Name mit der Veröffentlichung des Android SDK im Jahr 2007 ein. Version Code wurde als Maschinenkennung für den automatischen Versionsvergleich konzipiert, während Version Name als menschenlesbares Etikett gedacht war. Diese Trennung erlaubt es dem Entwickler, die Version nach Belieben zu benennen, während eine strenge Update-Reihenfolge durch den numerischen Code erhalten bleibt.

ParameterVersion CodeVersion Name
DatentypIntegerString
BenutzeranzeigeNeinJa
VersionsvergleichNumerischer VergleichNicht verwendet
Format1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Bereich1 — 2100000000Keine Grenzen

Wie die Versionierung durch den Version Code funktioniert

Der Vergleichsmechanismus des Version Code ist in das Android-Betriebssystem und den Google Play Store integriert. Bei jeder Veröffentlichung überprüft Google Play, ob der Version Code des neuen Builds größer ist als der Code der installierten Version. Wenn die Bedingung nicht erfüllt ist, wird die Veröffentlichung mit einem Fehler abgelehnt.

Update-Überprüfungsprozess

Wenn ein Gerät Google Play zur Überprüfung auf Updates kontaktiert, vergleicht der Server den Version Code der installierten Anwendung mit dem maximal im Store verfügbaren. Ist der Code auf dem Server größer, werden Download und Installation des Updates gestartet. Der Benutzer sieht den vom Entwickler angegebenen Version Name, aber die Update-Entscheidung wird auf Basis des Version Code getroffen.

Version Code-Inkrement

Entwickler wenden verschiedene Strategien zur Erhöhung des Version Code an. Die einfachste ist die Erhöhung um 1 bei jedem Build. Für CI/CD-Pipelines wird häufig ein Zeitstempel oder die Build-Nummer verwendet: 2026070301 (Jahr-Monat-Tag-Nummer). Wichtig ist, dass der Code monoton steigt und sich zwischen verschiedenen Builds und Google Play-Tracks nicht wiederholt.

  • Monotones Inkrement — Erhöhung um 1 bei jedem Commit in den Release-Branch
  • Zeitstempel-Format — 20260703 für tägliche Builds, 2026070301 für mehrere Builds pro Tag
  • SemVer in Zahlen — 100010000 für Version 1.1.0 (Major 1, Minor 1, Patch 0)
  • Build-Nummer — Verwendung der BUILD_NUMBER aus dem CI-System (Jenkins, GitHub Actions)

Unterschiede zwischen Version Code und Version Name

Version Code und Version Name sind zwei unabhängige Felder in build.gradle, die unterschiedliche Funktionen erfüllen. Der Version Code ist ein interner Identifikator für das System, der Version Name ein Marketing-Etikett für den Benutzer. Sie können unabhängig voneinander geändert werden.

Version Name für den Benutzer

Version Name ist eine Zeichenfolge, die in den Anwendungseinstellungen, bei Google Play und in Update-Dialogen angezeigt wird. Der Entwickler kann jedes beliebige Format angeben: 1.0.0, 2.3.1-beta, 3.0-rc1. Der Version Name wird nicht zum Vergleich von Zeichenfolgenversionen verwendet — Google Play verlässt sich immer auf den Version Code.

Abweichungsszenarien

Eine Situation ist möglich, in der der Version Code steigt, während der Version Name gleich bleibt. Zum Beispiel, wenn ein Entwickler einen kritischen Fehler in einem Hotfix-Build behebt, ohne die Funktionalität zu ändern. Der Version Name bleibt 2.0.0, während der Version Code von 5 auf 6 wechselt. Google Play wird ein solches Update korrekt verarbeiten.

groovy
// Beispiel: version name ändert sich nicht, Code erhöht sich
android {
    defaultConfig {
        versionCode 6  // War 5 — Hotfix ohne neue Funktionen
        versionName "2.0.0"  // Nicht geändert
    }
}

// Versionsprüfung zur Laufzeit
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Code: $code, Name: $name")

Konfiguration des Version Code in build.gradle

Die Konfiguration des Version Code erfolgt in der build.gradle-Datei des Anwendungsmoduls. Das Feld versionCode akzeptiert eine ganze Zahl und ist Teil des defaultConfig-Blocks. Für verschiedene Flavor-Builds können benutzerdefinierte Werte über das Feld versionCode in der Produktkonfiguration festgelegt werden.

Basiskonfiguration

kotlin
// build.gradle.kts — Kotlin DSL
android {
    defaultConfig {
        applicationId "com.example.app"
        versionCode 15
        versionName "2.1.0"
    }

    flavorDimensions +"version"
    productFlavors {
        create("demo") {
            versionCode 1015
        }
        create("full") {
            versionCode 2015
        }
    }
}

Product Flavors ermöglichen die Verwendung unterschiedlicher Version Codes für verschiedene Konfigurationen: Demo-Version, separate Version für Tablets. Wenn im Projekt Flavors verwendet werden, setzt sich der endgültige Version Code aus der Basiszahl und dem Flavor-spezifischen Inkrement zusammen. Google Play verfolgt jede Kombination unabhängig.

Automatisierung des Inkrements über CI

In CI/CD-Pipelines (GitHub Actions, GitLab CI, Jenkins) wird der Version Code oft automatisch basierend auf der Build-Nummer oder dem Datum generiert. Dies eliminiert menschliche Fehler bei manuellen Aktualisierungen. Das Skript liest den aktuellen Version Code aus build.gradle, erhöht ihn und schreibt ihn vor dem Start des Builds zurück.

kotlin
// Automatisches Inkrement des Version Code
import java.util.Properties
import java.io.FileInputStream

val versionProps = Properties()
versionProps.load(FileInputStream("version.properties"))

val versionCode = versionProps.getProperty("VERSION_CODE").toInt() + 1
versionProps.setProperty("VERSION_CODE", versionCode.toString())

android {
    defaultConfig {
        versionCode = versionCode
    }
}

Besonderheiten des Version Code für die Veröffentlichung bei Google Play

Google Play hat strenge Regeln für den Version Code beim Veröffentlichen und Aktualisieren von Anwendungen. Ein Verstoß gegen diese Regeln führt zur Ablehnung des Builds oder zur Unmöglichkeit, ein Update zu veröffentlichen. Der Entwickler muss die Einschränkungen und Code-Management-Strategien in allen Phasen des Lebenszyklus verstehen.

Regel des monotonen Anstiegs

Google Play erlaubt nicht das Hochladen eines APK oder AAB, dessen Version Code kleiner oder gleich dem aktuell veröffentlichten ist. Diese Regel gilt für jeden Track (Production, Beta, Alpha) unabhängig. Wenn in Production ein Build mit Version Code 10 hochgeladen wurde und in Alpha ein Build mit Code 5, kann der Alpha-Track auf 6, 7, 8 oder 9 aktualisiert werden, aber Production bleibt bei 10.

Migration zwischen Tracks

Bei der Promotion eines Builds von Alpha zu Beta und dann zu Production muss der Version Code in jeder Stufe steigen. Wenn die Alpha-Version Code 10 hat, kann Beta 11 und Production 12 verwenden. Sie können keinen Build mit Code 10 in Production ausrollen, wenn Alpha bereits 10 verwendet, selbst wenn Production diesen Code noch nicht gesehen hat.

  • Monotones Inkrement — jeder Build in einem Track hat einen größeren Version Code als der vorherige im selben Track
  • Track-übergreifendes Bewusstsein — bei der Promotion zwischen Tracks steigt der Version Code sequenziell
  • Interne Tests — der interne Test-Track verwendet dieselben Monotonie-Regeln
  • Mehrere APKs — das alte Veröffentlichungsformat erforderte einen eindeutigen Version Code für jedes APK

Fehler bei der Angabe des Version Code

Der häufigste Fehler ist die Übereinstimmung des Version Code in verschiedenen Builds, die in denselben Track hochgeladen wurden. Google Play gibt den Fehler APK_VERSION_CODE_ALREADY_EXISTS zurück. Ein weiterer Fehler ist das Überschreiten des Maximalwerts 2100000000, was zu einem Kompilierungsfehler führt. Um Konflikte zu vermeiden, verwenden Sie eine automatische Codegenerierung in Ihrem CI-System, die an die Build-Nummer oder das Build-Datum gebunden ist.

Entwickler machen auch oft den Fehler, den Version Code beim Erstellen eines Hotfix-Releases für einen alternativen Track nicht zu erhöhen. Wenn Production Code 15 hat und der Alpha-Track auf 14 geblieben ist, wird Google Play bei der Promotion von Alpha zu Production den Build ablehnen, da sein Code kleiner ist als der aktuelle Production-Code. Überwachen Sie die Monotonie des Codes in allen Tracks gleichzeitig — dafür ist es praktisch, eine einzige version.properties-Datei zu verwenden, aus der alle Tracks den aktuellen Wert lesen.

Häufig gestellte Fragen

Kann ich ein Update mit einem niedrigeren Version Code als dem aktuellen veröffentlichen?

Nein, Google Play erlaubt nicht das Hochladen eines Builds mit einem Version Code, der kleiner oder gleich dem aktuell im selben Track veröffentlichten ist. Das System überprüft den Code beim Hochladen und gibt einen Fehler zurück, wenn die Regel des monotonen Anstiegs verletzt wird. Für Alpha- und Beta-Tracks gilt dasselbe Prinzip unabhängig.

Welchen Version Code soll ich für die erste Veröffentlichung der App angeben?

Für die erste Veröffentlichung können Sie Version Code 1 angeben. Google Play legt außer einer positiven ganzen Zahl keine Mindestschwelle fest. Es wird empfohlen, mit 1 zu beginnen und bei jedem nachfolgenden Build um 1 zu erhöhen. Wenn Sie das Zeitstempel-Format verwenden, könnte der erste Build 20260701 sein.

Wie hängt der Version Code mit dem Version Name bei Google Play zusammen?

Version Code ist ein interner Maschinenidentifikator, der vom System zum Vergleich verwendet wird. Version Name ist ein benutzerorientiertes Etikett, das bei Google Play und auf dem Gerät angezeigt wird. Der Benutzer sieht den Version Name (z. B. 2.0.0), während Google Play den Version Code verwendet, um festzustellen, ob ein Update erforderlich ist.

Was passiert, wenn der maximale Version Code-Wert überschritten wird?

Der maximale Version Code-Wert beträgt 2100000000 (Integer.MAX_VALUE). Bei Überschreitung gibt der Compiler einen Fehler zurück, da das Feld vom Typ int ist. Für Projekte mit einer großen Anzahl von Builds (CI/CD mit täglichen Releases) wird empfohlen, das Zeitstempel-Format zu verwenden oder den Zähler zu Beginn einer Major-Version zurückzusetzen.

Kann der Version Code für A/B-Tests verwendet werden?

Version Code wird nicht direkt für A/B-Tests verwendet, beeinflusst diese aber indirekt. Google Play ermöglicht die Konfiguration eines gestaffelten Rollouts (staged rollout) nach Benutzerprozent für einen bestimmten Build. Der Version Code identifiziert den Build, während A/B-Tests über Firebase Remote Config oder ähnliche Dienste konfiguriert werden.

Zusammenfassung

  • Version Code — eine ganze Zahl, die jeden Build einer Android-Anwendung eindeutig identifiziert
  • Google Play verwendet den Version Code, um festzustellen, ob ein App-Update erforderlich ist
  • Inkrement-Regel — jeder neue Build muss einen Code haben, der streng größer ist als der vorherige im selben Track
  • Wertebereich — von 1 bis 2100000000 (Integer.MAX_VALUE)
  • Version Name — benutzerorientiertes Zeichenfolgen-Etikett, beeinflusst den Update-Mechanismus nicht
  • Automatisierung — CI/CD-Systeme können den Version Code aus der Build-Nummer oder dem Zeitstempel generieren
  • Empfehlung — wählen Sie eine Inkrement-Strategie vor der Veröffentlichung und halten Sie sie während des gesamten Lebenszyklus ein

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch