Die Versionsverwaltung ist ein wichtiger Bestandteil des Upgrades und der Wartung deiner App . Die Versionsverwaltung ist aus folgenden Gründen wichtig:
- Nutzende benötigen spezifische Informationen zur App-Version, auf ihren Geräten installiert ist und welche Upgrade-Versionen Installation.
- Andere Apps, einschließlich anderer Apps, unter denen Sie veröffentlichen eine Suite haben, müssen Sie die Version Ihrer App im System abfragen, um um die Kompatibilität zu ermitteln und Abhängigkeiten zu identifizieren.
- Dienste, für die Sie Ihre App(s) veröffentlichen, müssen möglicherweise auch Ihre App nach ihrer Version abfragen, damit sie Nutzenden. Ein Publishing-Dienst muss unter Umständen auch die App-Version prüfen, die Kompatibilität ermitteln und Upgrade-/Downgrade-Beziehungen aufbauen.
Das Android-System schützt deine Daten mithilfe der Versionsinformationen deiner App Downgrades vorbeugen. Die verwendet das System keine Informationen zur App-Version, um Einschränkungen Upgrades oder die Kompatibilität von Drittanbieter-Apps. Ihre App muss und Nutzer darüber zu informieren.
Das Android-System erzwingt die Versionskompatibilität des Systems,
durch die Einstellung minSdk
in den Build-Dateien. Diese Einstellung
ermöglicht eine App, die minimale System-API anzugeben, mit der sie kompatibel ist.
Weitere Informationen zu den API-Anforderungen
Siehe Anforderungen an das API-Level festlegen.
Die Versionsanforderungen unterscheiden sich je nach Projekt. Viele Entwickler überlegen jedoch, Die semantische Versionsverwaltung ist eine gute Grundlage für eine Versionsverwaltungsstrategie.
Informationen zur App-Version festlegen
Legen Sie Werte für die Version fest, um die Versionsinformationen für Ihre App zu definieren Einstellungen in den Gradle-Build-Dateien:
Cool
android { namespace 'com.example.testapp' compileSdk 33 defaultConfig { applicationId "com.example.testapp" minSdk 24 targetSdk 33 versionCode 1 versionName "1.0" ... } ... } ...
Kotlin
android { namespace = "com.example.testapp" compileSdk = 33 defaultConfig { applicationId = "com.example.testapp" minSdk = 24 targetSdk = 33 versionCode = 1 versionName = "1.0" ... } ... } ...
Versionseinstellungen
Definieren Sie Werte für die beiden verfügbaren Versionseinstellungen: versionCode
und
versionName
.
versionCode
- Eine positive Ganzzahl, die als interne Versionsnummer verwendet wird.
Anhand dieser Zahl kann bestimmt werden, ob eine Version die neueste ist.
als andere, wobei höhere Zahlen auf neuere Versionen hindeuten. Dies ist
und nicht die Versionsnummer, die Nutzern angezeigt wird. wird diese Zahl vom
versionName
-Einstellung. Das Android-System nutzt dieversionCode
-Wert zum Schutz vor Downgrades, indem verhindert wird, Nutzer daran gehindert werden, ein APK mit einer niedrigerenversionCode
zu installieren als die aktuell auf dem Gerät installierte Version.Der Wert ist eine positive Ganzzahl, damit andere Apps programmatisch auswerten können um beispielsweise eine Upgrade- oder Downgrade-Beziehung zu prüfen. Sie können Setzen Sie den Wert auf eine beliebige positive Ganzzahl. Stellen Sie jedoch sicher, jeder nachfolgende Release deiner App einen höheren Wert verwendet.
Hinweis:Im Rahmen von Google Play haben Sie
versionCode
ist 2100000000.Du kannst mit einer
versionCode
, die du hast, kein APK in den Play Store hochladen die bereits für eine vorherige Version verwendet wurden.Hinweis:In einigen Situationen kann es sinnvoll sein, Lade eine Version deiner App hoch, die eine niedrigere
versionCode
als die meisten hat aktuelle Version. Wenn Sie beispielsweise mehrere APKs veröffentlichen, haben Sie möglicherweise vordefinierteversionCode
-Bereiche für bestimmte APKs. Weitere Informationen Zuweisen vonversionCode
-Werten für mehrere APKs, siehe Versionscodes zuweisenNormalerweise veröffentlichen Sie die erste Version Ihrer App
versionCode
auf „1“ gesetzt und dann Wert monoton erhöhen unabhängig davon, ob sie eine Haupt- oder Nebenversion. Das bedeutet, dass der WertversionCode
nicht unbedingt der App-Release-Version ähneln, für den Nutzer sichtbar ist. Apps und Publishing-Dienste sollten diese Version nicht anzeigen Mehrwert für Nutzende zu schaffen. versionName
Ein String, der als Versionsnummer verwendet wird, die Nutzenden. Diese Einstellung kann als Rohstring oder als Verweis auf einen String-Ressource.
Der Wert ist ein String, mit dem Sie die App-Version als <Hauptfach>.<Minderwert>.<Punkt> oder eine andere Art von absolute oder relative Versionskennung.
versionName
ist der einzige Wert die für Nutzer sichtbar sind.
Versionswerte definieren
Sie können Standardwerte für diese Einstellungen definieren, indem Sie sie in die
Block defaultConfig {}
, verschachtelt in android {}
-Block der build.gradle
- oder build.gradle.kts
-Datei deines Moduls ein. Sie können
überschreiben Sie diese Standardwerte für verschiedene Versionen Ihrer App, indem Sie separate
für einzelne Build-Typen oder Produkt-Geschmacksrichtungen. Die folgende Datei enthält die
Einstellungen für versionCode
und versionName
im
defaultConfig {}
-Block und productFlavors {}
-Block.
Diese Werte werden dann während des Build-Prozesses in der Manifestdatei Ihrer App zusammengeführt.
Cool
android { ... defaultConfig { ... versionCode 2 versionName "1.1" } productFlavors { demo { ... versionName "1.1-demo" } full { ... } } }
Kotlin
android { ... defaultConfig { ... versionCode = 2 versionName = "1.1" } productFlavors { create("demo") { ... versionName = "1.1-demo" } create("full") { ... } } }
Im defaultConfig {}
-Block dieses Beispiels
Der Wert versionCode
gibt an, dass das aktuelle APK die
2. Release der App an und der String versionName
gibt an,
dass sie Nutzern als Version 1.1 angezeigt wird. In dieser Datei sind auch zwei Geschmacksrichtungen für Produkte definiert:
„Demo“ und „voll“. Da die „Demo“ „Produktgeschmack“ definiert versionName
als
„1.1-demo“, die „Demo“ Build verwendet dieses versionName
anstelle des Standardwerts.
Das „volle“ Der Produktflaschenblock definiert versionName
nicht, sodass er
verwendet den Standardwert „1.1“.
Hinweis:Wenn die App-Version in Ihrer App direkt im
<manifest>
-Element, die Versionswerte im Gradle-Build
die Einstellungen im Manifest überschreiben. Außerdem ist die Definition dieser
in den Gradle-Build-Dateien können Sie verschiedene Werte für
verschiedene Versionen Ihrer App. Für mehr Flexibilität und
Überschreiben beim Zusammenführen des Manifests möglich, entfernen Sie diese
aus dem Element <manifest>
und definieren Sie Ihre
Versionseinstellungen stattdessen in den Gradle-Build-Dateien.
Das Android-Framework bietet eine API, mit der Sie das System abfragen können.
finden Sie Versionsinformationen zu Ihrer App. Um Versionsinformationen zu erhalten,
verwenden Sie die
PackageManager.getPackageInfo(java.lang.String, int)
-Methode.
Anforderungen an das API-Level angeben
Wenn für Ihre App eine bestimmte Android-Version
Plattform, können Sie diese Versionsanforderung in den Einstellungen der API-Ebene
in der Datei build.gradle
oder build.gradle.kts
der App. Während der Erstellung
werden diese Einstellungen in der Manifestdatei Ihrer App zusammengeführt. API-Ebene angeben
dass Ihre App nur auf Geräten installiert werden kann,
mit einer kompatiblen Version der Android-Plattform.
Hinweis:Wenn Sie die Anforderungen an das API-Level direkt in der
Manifest-Datei der App ist, werden die entsprechenden Einstellungen in den Build-Dateien
die Einstellungen in der Manifestdatei überschreiben. Außerdem ist die Definition dieser
in den Gradle-Build-Dateien können Sie verschiedene Werte für
verschiedene Versionen Ihrer App. Für mehr Flexibilität und
Überschreiben beim Zusammenführen des Manifests möglich, entfernen Sie diese
Attribute aus dem Element <uses-sdk>
und definieren Ihre API
in den Gradle-Build-Dateien.
Es sind zwei Einstellungen für die API-Ebene verfügbar:
minSdk
– Die Mindestversion der Android-Plattform, auf der die App ausgeführt wird, der API-Level-ID der Plattform.targetSdk
– API-Ebene auf denen die App ausgeführt werden soll. In einigen Fällen kann das die im Ziel definierte Manifestelemente oder Verhaltensweisen verwendet API-Ebene zu verwenden, anstatt nur die definierten für das Mindest-API-Level.
Um Standardanforderungen an das API-Level in einem build.gradle
oder
build.gradle.kts
-Datei hinzufügen, fügen Sie eine oder mehrere API-Level-Einstellungen zum
Block defaultConfig{}
, verschachtelt im Block android {}
. Sie können
diese Standardwerte auch für verschiedene
App-Versionen erstellen, indem Sie die Einstellungen für Build-Typen oder Produkt-Geschmacksrichtungen hinzufügen.
Die folgende Datei gibt Standardeinstellungen an.
Einstellungen für minSdk
und targetSdk
im
defaultConfig {}
blockiert und überschreibt minSdk
für eine Produktsorte:
Cool
android { ... defaultConfig { ... minSdk 21 targetSdk 33 } productFlavors { main { ... } afterNougat { ... minSdk 24 } } }
Kotlin
android { ... defaultConfig { ... minSdk = 21 targetSdk = 33 } productFlavors { create("main") { ... } create("afterNougat") { ... minSdk = 24 } } }
Bei der Vorbereitung der App-Installation prüft das System den Wert
und vergleicht sie mit der Systemversion. Wenn die
Der Wert von minSdk
ist größer als die Systemversion, der Wert
die Installation der App verhindert.
Wenn Sie diese Einstellungen nicht festlegen, geht das System davon aus, dass Ihre App
ist mit allen Plattformversionen kompatibel. Dies entspricht der Einstellung von minSdk
auf
1
.
Weitere Informationen finden Sie unter Was ist ein API-Level?. Informationen zu den Gradle-Build-Einstellungen finden Sie unter Build-Varianten konfigurieren.