Android App Bundles
Was ist das Android App Bundle (AAB)?
Das 2018 auf den Markt gebrachte Android App Bundle (AAB) ist ein Veröffentlichungsformat für Android, das von Google Play und anderen App-Shops sowie von Build-Tools wie Android Studio, Looker, Buck, Cocos Creator, Gradle, Unity und Unreal unterstützt wird.
Was ist der Unterschied zwischen AABs und APKs?
App Bundles sind nur für die Veröffentlichung vorgesehen und können nicht auf Android-Geräten installiert werden. Das Android-Paket (APK) ist das installierbare, ausführbare Format von Android für Apps. App Bundles müssen von einem Distributor in APKs verarbeitet werden, damit sie auf Geräten installiert werden können.
Handelt es sich bei AAB um ein proprietäres Format, das nur bei Google Play verwendet werden kann?
Nein, AAB ist nicht proprietär. Das App Bundle ist Open Source, daher kann es von jedem App-Shop unterstützt werden. Bundles werden von Google Play und einigen anderen App-Shops unterstützt.
Verhindert das Erstellen von AABs,s in anderen App-Shops zu veröffentlichen?
Nein, Sie können weiterhin Inhalte in anderen App-Shops veröffentlichen. Wenn Sie Ihre Anwendung erstellen, können Sie AABs und APKs gleichzeitig erstellen, je nachdem, welches Veröffentlichungsformat für jeden App-Shop erforderlich ist.
Wie viel Arbeit ist erforderlich, um ein AAB zu verwenden?
Bei den meisten Anwendungen entspricht das Erstellen eines AAB der Erstellung eines APKs, da bei der Erstellung lediglich AAB anstelle des APK ausgewählt werden muss. Bei einigen Anwendungen sind möglicherweise Änderungen erforderlich, um alle Vorteile von AABs nutzen zu können.
Verwenden Entwickler bereits AABs?
Ja. Mehr als 1 Million Apps und Spiele verwenden App Bundles für die Veröffentlichung ihrer Produktions-Releases bei Google Play. Darunter sind auch die meisten beliebten Apps, die für Milliarden von aktiven Installationen verantwortlich sind. Wenn du Apps über Google Play installierst, wurden viele der Apps auf deinem Gerät als App Bundles veröffentlicht.
Verhindert AAB, dass Nutzer Anwendungen per Sideloading blockieren?
Nein. AABs verhindern nicht, dass Nutzer APKs aus einer beliebigen Quelle installieren. Da AAB nur ein Veröffentlichungsformat ist, ändern sie nicht die Funktionsweise der Android-Plattform.
Bedeutet das, dass bei Nutzern, die diese APKs freigeben, Probleme auftreten können, wenn ein Entwickler AABs verwendet, um optimierte APKs bereitzustellen?
Unter Android gab es schon immer seltene Fälle, in denen APKs nicht direkt von einem Gerät auf ein anderes übertragen werden konnten, unabhängig davon, ob die App über APKs oder AABs veröffentlicht wurde. Insbesondere, wenn APKs für ein Gerät optimiert wurden (z. B. für eine bestimmte Chiparchitektur), können bei der direkten Übertragung dieser APKs auf ein anderes Gerät Probleme auftreten, wenn das Zielgerät nicht mit den Eigenschaften des ursprünglichen Geräts übereinstimmt. In diesen Fällen muss ein APK oder eine Reihe von APKs installiert werden, die für das Zielgerät geeignet sind.
Kann ich Apps in mehreren App-Shops veröffentlichen?
Ja, Sie können in mehreren App-Shops veröffentlichen, unabhängig davon, ob Sie AABs verwenden oder nicht. Sie können AABs bei Google Play und anderen App-Shops, die AABs unterstützen, gleichzeitig mit der Veröffentlichung von APKs in anderen App-Shops oder Websites veröffentlichen, die keine AABs unterstützen.
Gilt die AAB-Anforderung auch für interne Apps, die in Managed Google Play veröffentlicht werden?
Nein. Interne Apps, die bei Managed Google Play veröffentlicht werden, können entweder mit APKs oder AABs veröffentlicht werden. Wenn du ein selbst signiertes, privates APK veröffentlichen möchtest, kannst du beim Erstellen einer neuen privaten App App-Signaturschlüssel ändern auswählen und die Play App-Signatur deaktivieren.
Play App-Signatur
Was ist die Play App-Signatur?
Jedes APK auf Android muss kryptografisch mit einem App-Signaturschlüssel signiert werden, damit es installiert werden kann. Die Android-Plattform verwendet den Schlüssel, um sicherzustellen, dass alle App-Updates mit der auf einem Gerät installierten App übereinstimmen, sodass nach einer Erstinstallation jedes App-Update vom selben Schlüsselinhaber stammt. So verringern Sie das Risiko schädlicher App-Updates. Play App-Signatur ist der Key Management Service von Google Play, der 2017 auf den Markt gebracht wurde und die App-Signaturschlüssel von Google Play-Entwicklern für ihre bei Google Play angebotenen Apps schützt und verwaltet. Außerdem führt Play App Signing den Signaturvorgang für die APKs aus, die Play aus hochgeladenen AABs generiert. Die Play App-Signatur ist für neue Apps erforderlich, damit sie AABs verwenden können.
Warum hat Google die Play App-Signatur eingeführt?
Jahrelang waren App-Signaturschlüssel eine Herausforderung für Google Play-Entwickler. Ein Verlust des Schlüssels bedeutet, dass Sie Nutzern keine App-Updates mehr bereitstellen können. Wenn ein Schlüssel kompromittiert wird, besteht für die Nutzer das Risiko schädlicher Updates. Bei der Softwareverteilung für Vertriebskanäle ist es üblich, die Schlüssel für die von ihnen bereitgestellte Software zu speichern und zu verwalten, da dies diese Risiken mindert. Play App-Signatur wurde 2017 eingeführt, um das Risiko des Verlusts von Play-Vertriebsschlüsseln zu vermeiden, Play-Nutzer nach einer Schlüsselmanipulation besser zu schützen und Entwicklern die Vorteile der laufenden Sicherheitsinvestitionen von Google zu bieten.
Wie sorgt Google für die Sicherheit der Play App-Signatur?
Google schützt Entwicklerschlüssel in derselben branchenführenden, sicheren Infrastruktur, die auch zum Schutz der eigenen Schlüssel von Google verwendet wird. Schlüssel werden verschlüsselt auf gesperrten, dedizierten Schlüsselverwaltungsservern mit strengen ACLs und manipulationssicheren Audit-Trails gespeichert, die alle Vorgänge abdecken. Die Sicherheitsabläufe und Best Practices für die Cloud-Sicherheit von Google sind online detailliert.
Kann ich den App-Signaturschlüssel auswählen, den Google Play für meine App verwendet?
Ja. Wenn Sie eine neue Anwendung erstellen, können Sie entweder einen App-Signaturschlüssel von Google für Sie generieren und speichern lassen oder einen eigenen App-Signaturschlüssel auswählen und eine Kopie davon hochladen.
Ich möchte für Google Play und andere App-Shops denselben App-Signaturschlüssel verwenden. Ist das immer noch möglich?
Wenn Sie sich nach Überlegungen zur Funktionsweise von App-Updates für die Verwendung desselben Signaturschlüssels für mehrere App-Shops entschieden haben, ist dies immer noch möglich. Beachten Sie, dass jeder App-Shop so App-Updates für Ihre App ausführen kann. Sie haben zwei Möglichkeiten:
- Sie können einen Schlüssel lokal generieren und eine Kopie bei Google Play hochladen. Auf diese Weise können Sie denselben Schlüssel verwenden, den Google Play verwendet, wenn Sie Ihre App für andere App-Shops erstellen.
- Sie können einen von Google generierten Schlüssel für die Play App-Signatur verwenden und dann Distributions-APKs, die mit dem von Google generierten Schlüssel signiert sind, aus der Play Console herunterladen und diese APKs für den Vertrieb in anderen App-Shops oder Websites verwenden.
Kann ich die Play App-Signatur für eine App verwenden, die vor August 2021 erstellt wurde, ohne eine Kopie meines App-Signaturschlüssels bereitzustellen?
Ja, die Play App-Signatur unterstützt eine Schlüsselaktualisierungsoption für Apps, die vor August 2021 erstellt wurden. Dadurch kann die App Play App Signing mit einem neuen App-Signaturschlüssel verwenden. Wenn Sie diese Option verwenden möchten, müssen Sie jedoch nach dem Upgrade zwei Inhalte in jeden Release hochladen: ein App Bundle und ein Legacy-APK, das mit Ihrem alten App-Signaturschlüssel signiert ist. Play verwendet deine AABs, um APKs zu generieren, die mit dem aktualisierten Schlüssel für neue Installationen und deren Updates signiert sind. Gleichzeitig verwendet Play deine alten APKs für App-Updates für Nutzer, die deine App bereits installiert haben. Im Laufe der Zeit werden die Legacy-Installationen zum aktualisierten Schlüssel migriert, z.B. wenn Nutzer zu einem neuen Mobilgerät wechseln.
Gibt es eine Möglichkeit, denselben App-Signaturschlüssel für Apps zu verwenden, die vor August 2021 und nach August 2021 erstellt wurden?
Es wird im Allgemeinen nicht empfohlen, denselben App-Signaturschlüssel für mehrere Apps zu verwenden. Es ist sicherer, für jede App einen eindeutigen Schlüssel zu verwenden. Wenn Sie jedoch denselben App-Signaturschlüssel für mehrere Apps verwenden müssen, ist dies möglich. Sie haben aber auch die Möglichkeit, eine Kopie des vorhandenen App-Signaturschlüssels hochzuladen, wenn Sie die Play App-Signatur konfigurieren. Wenn Sie den vorhandenen App-Signaturschlüssel nicht teilen möchten, können Sie auch die anstehende Schlüsselaktualisierung für Ihre App, die vor August 2021 erstellt wurde, für die Play App-Signatur verwenden. So können Sie denselben neuen Schlüssel sowohl für Ihre Apps vor August 2021 als auch für Ihre App nach August 2021 verwenden.
Kann ich den von der Play App-Signatur verwendeten App-Signaturschlüssel ändern?
Ja, Apps können ihren Schlüssel ändern, indem sie in der Play Console eine Schlüsselaktualisierung anfordern.
Wie kann ich überprüfen, ob Google Play unerwartete Änderungen an meinem Code vorgenommen hat?
Sie können Artefakte jederzeit von Google Play und aus dem App Bundle Explorer in der Play Console herunterladen und prüfen. Darüber hinaus bietet die Play Developer API bald die Möglichkeit, APKs zu überprüfen, bevor sie einem Release-Track zugewiesen werden. Sie können auch die optionale Funktion Codetransparenz für App Bundles verwenden. Mit Codetransparenz können Sie und Ihre Endnutzer einen App-Shop wie Google Play nutzen, um den von ihm bereitgestellten Code zu berücksichtigen.
Wie funktioniert Codetransparenz für App Bundles?
Codetransparenz ist ein optionales Feature, mit dem Sie einen App-Shop verwalten können, der Ihre App verteilt, um den von ihr bereitgestellten Code zu berücksichtigen. Wenn Sie Codetransparenz verwenden möchten, generieren Sie beim Build in Ihrer Anwendung eine Codetransparenzdatei, die Ihren Code darstellt (insbesondere eine Datei, die Hashes des Anwendungscodes enthält). Sie signieren ihn mit Ihrem eigenen privaten Code-Transparenzschlüssel, den nur Sie besitzen. Sie müssen Google niemals Ihren Codetransparenzschlüssel zur Verfügung stellen. Anschließend können Sie auf einem Gerät ein installiertes APK überprüfen und überprüfen, ob die von Ihnen signierte Codetransparenzdatei noch mit dem APK-Code übereinstimmt. So können Sie sicher sein, dass der von der Codetransparenz verifizierte Code nicht geändert wurde, selbst wenn das APK selbst während der Bereitstellung neu signiert wurde. Wenn es eine Abweichung gibt, ist das ein Hinweis darauf, dass der Code während der Verteilung geändert wurde. Codetransparenz ersetzt keine APK-Signaturen und ist nicht Teil der Android-Plattform.
Große Apps und Spiele bei Google Play veröffentlichen
Welche Größenbeschränkungen gelten für Google Play-Apps bei der Verwendung von AAB?
Die maximale komprimierte Downloadgröße für ein von einem AAB generiertes Basismodul beträgt 200 MB. Google Play generiert also zuerst das Basismodul und dann alle zusätzlichen Funktionsmodule oder Asset-Packs von Ihrem AAB. Als Nächstes prüft Google Play, ob die maximale kumulative komprimierte Downloadgröße, die ein einzelnes Gerät erhält, nicht größer als 4 GB ist.
Unterstützt Google Play Erweiterungsdateien (OBBs) für AABs?
Nein, Google Play unterstützt keine Erweiterungsdateien für AABs. Erweiterungsdateien (OBBs) sind eine alte Google Play-spezifische Lösung zum Veröffentlichen großer Apps und Spiele mithilfe von APKs. Für AABs, die größer als 200 MB sind, gibt es Alternativen von Google und Drittanbietern.
Wie veröffentliche ich eine App oder ein Spiel bei Google Play, das größer als 200 MB ist?
Große Apps und Spiele, die AABs verwenden, können entweder Play-Bereitstellungsdienste wie Play Asset Delivery oder Play Feature Delivery verwenden, um die Größenbeschränkung von 200 MB zu überschreiten, oder sie können Content Delivery Networks von Drittanbietern nutzen.
Welche Vorteile bietet Play Asset Delivery gegenüber Erweiterungsdateien (OBBs)?
Bei Google Play waren für APKs separate Erweiterungsdateien (OBBs) erforderlich, um Nutzern zusätzliche Ressourcen bereitzustellen. Da OBBs jedoch nicht signiert sind und im externen Speicher der Anwendung gespeichert werden, sind sie nicht sehr sicher. Mit Play Asset Delivery (PAD) können Spiele mit mehr als 200 MB OBBs ersetzen, indem das gesamte Spiel als einzelnes App-Bundle im Play Store veröffentlicht wird. PAD bietet nicht nur einen reibungsloseren Veröffentlichungsprozess und flexible Bereitstellungsmodi, sondern bedeutet auch, dass Updates weniger Gerätespeicher benötigen. Dies kann zu höheren Installationsraten führen. Da ASTC jetzt auf rund 80 % der Geräte unterstützt wird, können Sie mit der Targeting-Funktion für Texturkomprimierungsformate von PAD ASTC auf Geräten ausliefern, die dies unterstützen. Sie können Ihre Anzeigen auf eine möglichst große Bandbreite von Geräten ausrichten und die verfügbare Hardware und den Gerätespeicher effizient nutzen.
Google Play-Bereitstellungsfunktionen, die von AABs freigeschaltet wurden
Was sind Beispiele für neue Funktionen, die Google Play Entwicklern mit AABs anbietet?
App-Shops wie Google Play verarbeiten AABs in installierbare APKs. Durch die Verantwortung für die APKs können neue Funktionen und Dienste angeboten werden, die Entwicklern und Nutzern Vorteile bieten. Google Play bietet bereits solche Dienste an, die von Entwicklern bereits häufig verwendet und geschätzt werden. Zwei Beispiele sind Play Feature Delivery und Play Asset Delivery.
Was ist Play Feature Delivery?
Eines der Merkmale von App Bundles besteht darin, dass sie es ermöglichen, eine App in mehrere Module, sogenannte „Feature-Module“, aufzuteilen. Diese Module können dann zu verschiedenen Zeiten dynamisch für Nutzer und Geräte bereitgestellt werden (im Gegensatz zu früher, als bei der Installation alles als eine Datei bereitgestellt werden musste). Mit Play Feature Delivery können Sie mithilfe von Modi für die Installationszeit, bedingte und On-Demand-Übermittlung anpassen, welche Featuremodule wann an welches Gerät gesendet werden. So kannst du die App-Größe verringern, mehr Installationen erzielen und die App personalisieren. So könnten Sie z. B. den Nutzern, die sie benötigen, ein selten genutztes Feature wie den On-Demand-Kundensupport anstatt bei der Installation bereitstellen. Dadurch wird die Größe der Erstinstallation für alle Nutzer reduziert. Sie können auch eine vollständige App-Experience auf High-End-Geräten bereitstellen und eine kleinere App-Erfahrung mit optionalen On-Demand-Funktionen für Einstiegsgeräte bereitstellen, für die Daten- und Gerätespeicherbeschränkungen gelten.
Was ist Play Asset Delivery?
Mit Play Asset Delivery können Spieleentwickler die Nutzerfreundlichkeit verbessern und die Wartezeit der Nutzer verkürzen, indem große Assets dynamisch zum optimalen Zeitpunkt bereitgestellt werden. Bei Spielen, bei denen Play Asset Delivery verwendet wird, kann auch das Targeting auf Texturkomprimierungsformate genutzt werden, sodass Nutzer nur die Assets erhalten, die für ihr Gerät geeignet sind, und es wird kein Speicherplatz oder keine Bandbreite verschwendet.
Sind diese Play-Zustellfunktionen auch in anderen App-Shops verfügbar?
Nein, Play Feature Delivery und Play Asset Delivery umfassen Apps und Spiele, die direkt mit dem Google Play Store verbunden sind. Diese optionalen Dienste sind Beispiele dafür, wie Google Play sich als App-Shop hervorhebt und zusätzlichen Wert und Nutzen für Google Play-Entwickler und -Nutzer schafft. Andere App-Shops, die App-Bundles und APKs verwenden, bieten Entwicklern ihre eigenen App-Shop-Dienste an.