Versionierung ist sehr wichtig für Upgrades und Pflege einer App.
- Benutzer brauchen Informationen über die installierte Version und welche Upgrade-Versionen zur Verfügung stehen
- Andere Apps brauchen die Version zur Prüfung der Kompatibilität und Abhängigkeiten
- Dienste, welche die App publizieren, benötigen die Version neben der Darstellung auch, um festzustellen, ob ein Upgrade oder Downgrade möglich ist.
Es gitb zwei Werte für die Version
Eine positive Zahl, die als interne Versionsnummer verwendet wird. Diese Zahl wird zur Bestimmung verwendet, ob eine Version der App neuer oder älter ist als eine andere. Android verhindert über diese Zahl ein Downgrade auf eine niedrigere Version. Die Versionsnummer wird dem Benutzer nicht dargestellt.
Typischerweise wird die Version für jedes Release um 1
erhöht. Unabhängig davon, ob es ein major
oder minor
Release ist.
Stellt die Version für den Benutzer dar. Üblicher Weise in Form von Semantic Versioning
<major>.<minor>.<patch>
.
Cordova-Apps haben eine package.json
sowie eine config.xml
Datei zur Konfiguration.
Standardmäßig steht in beiden der gleiche Versionsname (versionName
) in Form von Semantic Versioning.
Aus dieser Version berechnet Cordova den versionCode
nach folgendem Schema:
versionCode = MAJOR * 10000 + MINOR * 100 + PATCH
Der versionCode
kann in der config.xml
mit der Option android-versionCode
überschrieben werden.
Aus der Version 1.5.1
wir folgender versionCode
erzeugt.
Ergebnis | |
---|---|
1 * 10000 |
10000 |
5 * 100 |
500 |
1 |
1 |
10501 |
Bei der Version 1.1.130
verschiebt sich durch diese Rechnung patch
in minor
.
Ergebnis | |
---|---|
1 * 10000 |
10000 |
1 * 100 |
100 |
130 |
130 |
10230 |
Wird jetzt minor
beim nächsten Release erhöht, entsteht die Version 1.2.0
.
Ergebnis | |
---|---|
1 * 10000 |
10000 |
2 * 100 |
200 |
0 |
0 |
10200 |
Dieser
versionCode
von10200
ist jetzt kleiner als10230
. Somit ist ein Upgrade der App nicht möglich ❗