In diesem Leitfaden wird beschrieben, wie die Android-Plattform und Google Play App-Updates verarbeiten. Außerdem werden verschiedene Optionen für Entwickler erläutert, die ihre Apps in mehreren App-Stores veröffentlichen.
So werden App-Updates unter Android gehandhabt
Jede Android-App hat eine eindeutige Anwendungs-ID, die wie ein Java- oder Kotlin-Paketname aussieht, z. B. com.example.myapp
. Diese ID identifiziert jede App auf dem Gerät eindeutig. Auf Android-Geräten kann jeweils nur eine App mit einer bestimmten App-ID installiert sein.
Damit ein Update von der Android-Plattform akzeptiert wird, müssen die folgenden Bedingungen erfüllt sein:
- Die Anwendungs-ID des Updates muss mit der der installierten App übereinstimmen.
- Das Signaturzertifikat des Updates muss mit dem Signaturzertifikat der installierten App übereinstimmen oder einen gültigen Rotationsnachweis enthalten.
- Der Versionscode des Updates muss höher oder gleich dem Versionscode der installierten App sein.
- In einigen Fällen muss der Nutzer das Update akzeptieren.
Es gibt keinen integrierten Schutz gegen die Aktualisierung einer App durch verschiedene Installationsprogramme, wenn die Updates dasselbe Signaturzertifikat und denselben oder einen höheren Versionscode haben.
Wenn ein Nutzer eine App installieren möchte, die die oben genannten Bedingungen nicht erfüllt, muss er zuerst die aktuell installierte Version deinstallieren. Dadurch werden alle App-Daten vom Gerät gelöscht.
So aktualisiert Google Play Apps
Der Ansatz von Google Play für das Aktualisieren von Apps basiert auf den folgenden Grundsätzen:
- Nutzer auf dem Laufenden halten: Es wird empfohlen, Apps auf dem neuesten Stand zu halten, um Nutzer vor Sicherheitsproblemen zu schützen und von den neuesten Funktionsverbesserungen zu profitieren.
- Nutzermeinung respektieren: Google Play aktualisiert Apps, die mit den Konten der Nutzer verknüpft sind, und zwar basierend auf den von ihnen ausgewählten Update-Einstellungen, z. B. ob die Verwendung von Daten mit Volumenzähler zulässig ist oder nicht.
- Entscheidung des Entwicklers respektieren: Google Play verwendet die Konfigurationsoptionen der Entwickler, um App-Updates zu ermitteln.
- Vermeiden Sie verschwendete Ressourcen. Die Akkulaufzeit wird durch die Optimierung des Zeitpunkts, zu dem Updates heruntergeladen werden, geschont. Der Datenverbrauch wird durch Techniken wie Komprimierung und Patchen minimiert.
Google Play aktualisiert eine auf einem Gerät installierte App, wenn die folgenden Bedingungen erfüllt sind:
- Die App wurde mit derselben Anwendungs-ID bei Google Play veröffentlicht.
- Das Signaturzertifikat der veröffentlichten App entspricht dem Signaturzertifikat der aktuell installierten Version oder enthält einen gültigen Rotationsnachweis.
- Die App ist Teil der Mediathek des Nutzers oder wurde von einem OEM vorinstalliert.
- Die App ist gemäß den vom Entwickler definierten Targeting-Optionen für diesen Nutzer und dieses Gerät verfügbar.
- Die installierte App ist veraltet im Vergleich zur Version, die bei Google Play verfügbar ist.
Solange diese Bedingungen erfüllt sind, kann Google Play die App aktualisieren. In den Unterabschnitten unten finden Sie weitere Informationen zu einigen der aufgeführten Bedingungen.
Es gibt auch andere Fälle, in denen Google Play im Namen von Entwicklern App-Inhalte herunterlädt oder Wartungsarbeiten an App-Binärdateien durchführt, ohne den Android-Versionscode zu ändern. Das ist beispielsweise der Fall, wenn partielle Downloads abgeschlossen oder Splits auf Anfrage heruntergeladen werden.
Bei Google Play veröffentlicht
Google Play verwendet die Anwendungs-ID, um bei Google Play veröffentlichte Anwendungen eindeutig zu identifizieren. Diese Bedingung ist erfüllt, wenn die Anwendungs-ID der installierten App mit der Anwendungs-ID einer bei Google Play veröffentlichten App übereinstimmt.
Teil der Bibliothek des Nutzers
Diese Bedingung ist erfüllt, wenn eine der folgenden Aussagen zutrifft:
- Die App wurde zuvor über ein beliebiges aktives Google-Konto auf dem Gerät erworben, indem auf Google Play auf die Schaltfläche „Installieren“ oder „Kaufen“ getippt wurde.
- Der OEM hat die App als Teil des Systemimages vorab geladen.
Nutzer können Apps auch manuell aus ihren Mediatheken entfernen.
Nicht mehr aktuell
Google Play ermittelt anhand des Versionscodes, ob eine auf einem Gerät installierte App veraltet ist. Wenn die in Google Play zum Download verfügbare Version einen höheren Versionscode hat als die installierte Version, gilt die installierte App als veraltet.
Apps in mehreren App-Shops
Wenn Sie eine App in mehreren App-Shops veröffentlichen, haben Sie verschiedene Möglichkeiten, Updates für mehrere Shops zu verwalten. In den folgenden Abschnitten werden diese Optionen sowie ihre potenziellen Vor- und Nachteile beschrieben.
Store-übergreifende Updates verhindern
Möglicherweise möchten Sie verhindern, dass in den einzelnen App-Shops app-shopübergreifende App-Updates für Ihre App durchgeführt werden. Das kann sinnvoll sein, wenn sich die Inhalte Ihrer App in den einzelnen App-Shops unterscheiden. Dies kann erreicht werden, indem die App mit zwei verschiedenen Anwendungs-IDs oder mit derselben Anwendungs-ID und zwei verschiedenen Signaturschlüsseln veröffentlicht wird.
Sie sollten die Wiederverwendung Ihres Signaturschlüssels minimieren, um das Risiko einer Schlüsselmanipulation zu verringern. Verwenden Sie daher für jeden App-Shop einen anderen App-Signaturschlüssel. Dadurch würden Updates über mehrere Stores hinweg verhindert.
Unabhängig davon, welchen Ansatz Sie wählen, behandelt Android Apps ohne übereinstimmende Anwendungs-ID und Signaturschlüssel als inkompatibel. Wenn ein Nutzer von einem Shop zu einem anderen wechseln möchte, muss er die installierte App löschen. Dadurch werden alle mit der App verknüpften Daten gelöscht. Anschließend muss er die App aus dem anderen Shop neu installieren.
Updates über mehrere Stores hinweg zulassen
Sie können zulassen, dass jeder App-Shop Store-übergreifende App-Updates für Ihre App durchführt. Das kann sinnvoll sein, wenn Sie Ihre App mit denselben Inhalten in allen App-Shops vertreiben und Nutzer immer auf dem neuesten Stand sein sollen. Solange Sie in allen App-Shops, in denen Sie Ihre App veröffentlichen, dieselbe Anwendungs-ID und dieselben Signaturschlüssel verwenden, kann jeder App-Shop Installationen Ihrer App aktualisieren, unabhängig davon, wo der Nutzer die App ursprünglich heruntergeladen hat.
Dies kann jedoch zu unvorhersehbarem Verhalten für Ihre Nutzer führen, je nachdem, wie die einzelnen App-Stores App-Updates für mehrere Stores implementieren. Ein Nutzer kann beispielsweise Updates von einem Store deaktivieren, ohne zu wissen, dass ein anderer Store weiterhin Updates bereitstellen kann.
Wenn Sie zuvor Store-übergreifende Updates zugelassen haben, aber eine bestimmte Updatequelle bevorzugen möchten, wenn sie auf dem Gerät vorhanden ist, können Sie Ihre App mit einem höheren Versionscode in Ihrem bevorzugten App-Store veröffentlichen und weiterhin mit niedrigeren Versionscodes in anderen App-Stores veröffentlichen. Sobald das Update mit dem höheren Versionscode von der bevorzugten Quelle installiert wurde, können die anderen App-Stores auf diesem Gerät kein Cross-Update mehr durchführen.