In diesem Leitfaden wird erläutert, 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-Shops veröffentlichen.
Wie Android App-Updates verarbeitet
Jede Android-App hat eine eindeutige App-ID, die wie ein Java- oder Kotlin-Paketname aussieht, z. B. com.example.myapp
. Damit wird jede App auf dem Gerät eindeutig identifiziert. Auf Android-Geräten kann immer nur eine App mit einer bestimmten Anwendungs-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 dem Versionscode der installierten App entsprechen oder höher sein.
- In einigen Fällen muss der Nutzer das Update akzeptieren.
Es gibt keinen integrierten Schutz davor, dass verschiedene Installationsprogramme eine Anwendung aktualisieren, wenn die Updates dasselbe Signaturzertifikat und denselben oder einen höheren Versionscode haben.
Um eine App zu installieren, die die oben genannten Bedingungen nicht erfüllt, muss der Nutzer 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 beim Aktualisieren von Apps basiert auf den folgenden Prinzipien:
- Halten Sie Nutzer auf dem neuesten Stand. Es wird empfohlen, Anwendungen auf dem neuesten Stand zu halten, um Nutzer vor Sicherheitsproblemen zu schützen und von den neuesten Featureverbesserungen zu profitieren.
- Respektiere die Entscheidung der Nutzer. Google Play aktualisiert Apps, die mit den Konten der Nutzer verknüpft sind und auf Grundlage der von ihnen gewählten Update-Einstellungen, z. B. ob die Nutzung kostenpflichtiger Daten zugelassen oder verhindert wird.
- Respektiere die Entscheidungen des Entwicklers. Google Play verwendet bei der Bestimmung von App-Updates die Konfigurationsoptionen der Entwickler.
- Vergeudete Ressourcen vermeiden: Schonen Sie die Akkulaufzeit, indem Sie den Download von Updates optimieren, und minimieren Sie die Datennutzung mit Techniken wie Komprimierung und Patching.
Eine bestimmte App, die auf einem Gerät installiert ist, wird von Google Play aktualisiert, wenn die folgenden Bedingungen erfüllt sind:
- Die App wurde mit derselben App-ID bei Google Play veröffentlicht.
- Das Signaturzertifikat der veröffentlichten App stimmt mit dem Signaturzertifikat der aktuell installierten Version überein oder enthält einen gültigen Rotationsnachweis.
- Die App ist Teil der Bibliothek des Nutzers oder wurde von einem OEM vorab geladen.
- Die App ist gemäß den vom Entwickler definierten Targeting-Optionen für diesen Nutzer und dieses Gerät verfügbar.
- Die installierte App ist im Vergleich zu der bei Google Play verfügbaren Version veraltet.
Wenn diese Bedingungen erfüllt sind, kann Google Play die App aktualisieren. Die folgenden Unterabschnitte enthalten Details zu einigen der aufgeführten Bedingungen.
Es gibt auch Fälle, in denen Google Play App-Inhalte herunterlädt oder Wartungsarbeiten an App-Binärdateien im Namen des Entwicklers durchführt, ohne den Android-Versionscode zu ändern, z. B. wenn Teildownloads oder On-Demand-Aufteilungen heruntergeladen werden.
Bei Google Play veröffentlicht
Google Play verwendet die App-ID, um bei Google Play veröffentlichte Apps eindeutig zu identifizieren. Diese Bedingung ist erfüllt, wenn die App-ID der installierten App mit der App-ID einer bei Google Play veröffentlichten App übereinstimmt.
Teil der Bibliothek des Nutzers
Diese Bedingung ist erfüllt, wenn eine der folgenden Bedingungen zutrifft:
- Die App wurde über ein aktives Google-Konto auf dem Gerät über die Schaltfläche „Installieren“ oder „Kaufen“ bei Google Play heruntergeladen.
- Der OEM hat die App als Teil des System-Images vorab geladen.
Nutzer haben auch die Möglichkeit, Apps manuell aus ihren Bibliotheken zu entfernen.
Nicht mehr aktuell
Google Play ermittelt anhand des Versionscodes, ob eine auf einem Gerät installierte App veraltet ist. Wenn die zum Download bei Google Play verfügbare Version einen höheren Versionscode als die installierte Version hat, betrachtet Google Play die installierte App als veraltet.
Apps in mehreren App-Shops
Es gibt mehrere Möglichkeiten, Store-übergreifende Updates zu steuern, wenn Sie eine App in mehreren App-Shops veröffentlichen. In den folgenden Abschnitten werden diese Optionen und ihre potenziellen Vor- und Nachteile behandelt.
Shopübergreifende Updates verhindern
Sie können verhindern, dass App-Shops plattformübergreifende App-Updates für Ihre App durchführen. Das ist sinnvoll, wenn sich die Inhalte der App in den einzelnen App-Shops unterscheiden. Dazu wird die App mit zwei verschiedenen App-IDs oder mit derselben Anwendungs-ID und zwei verschiedenen Signaturschlüsseln veröffentlicht.
Sie können die Wiederverwendung Ihres Signaturschlüssels minimieren, um das Risiko eines Schlüsselmissbrauchs zu reduzieren. Verwenden Sie daher für jeden App-Shop einen anderen App-Signaturschlüssel. Andernfalls würden speicherübergreifende Updates verhindert werden.
Unabhängig vom gewählten Ansatz behandelt Android Apps ohne entsprechende App-ID und Signaturschlüssel als inkompatibel. Wenn ein Nutzer von einem App-Shop zu einem anderen wechseln möchte, muss er die installierte App löschen. Dadurch werden alle mit dieser App verknüpften Daten gelöscht. Außerdem muss er sie vom anderen App-Shop aus neu installieren.
Storeübergreifende Updates zulassen
Sie können jedem App-Shop erlauben, speicherübergreifende App-Updates für Ihre App auszuführen. Das bietet sich an, wenn Sie Ihre App mit denselben Inhalten in allen App-Shops vertreiben und die Nutzer bevorzugt auf dem neuesten Stand halten möchten. Solange Sie für alle 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 Ihrer Nutzer führen, je nachdem, wie der jeweilige App-Shop speicherübergreifende App-Updates implementiert. Beispielsweise könnte ein Nutzer Updates in einem Speicher deaktivieren, ohne zu merken, dass ein anderer Speicher weiterhin Updates zur Verfügung stellt.
Wenn Sie zuvor Store-übergreifende Updates zugelassen haben, aber eine bestimmte Updatequelle bevorzugen möchten, die auf dem Gerät vorhanden ist, können Sie Ihre App mit einem höheren Versionscode in Ihrem bevorzugten App-Shop veröffentlichen und sie dann mit niedrigeren Versionscodes in anderen App-Shops veröffentlichen. Sobald das Update mit dem höheren Versionscode von der bevorzugten Quelle installiert wurde, können die anderen App-Shops auf diesem Gerät keine Cross-Updates mehr durchführen.