Installieren Sie das Android App Bundle auf dem Gerät


101

Ich habe mein Projekt mit dem neuen Android App Bundle-Format erstellt. Mit APK-Dateien kann ich die APK auf mein Gerät herunterladen, öffnen und die App sofort installieren. Ich habe meine App als Bundle (.aab-Format) heruntergeladen und mein Nexus 5X mit Android 8.1 kann die Datei nicht öffnen. Gibt es eine Möglichkeit, AABs auf die gleiche bequeme Weise wie APKs auf Geräten zu installieren?


2
Es sieht so aus, als ob es ein paar Schritte mehr dauert als eine einfache apk: developer.android.com/guide/app-bundle/test .
Mike M.

Antworten:


100

Kurze Antwort:

Nicht direkt.

Längere Antwort:

Android App Bundles ist ein Veröffentlichungsformat. Android-Geräte benötigen .apkDateien, um Anwendungen zu installieren.

Der PlayStore oder eine andere Quelle, von der Sie installieren, muss Apks aus dem Bundle extrahieren, jede signieren und sie dann spezifisch für das Zielgerät installieren.

Die Konvertierung von .aab nach .apk erfolgt über das Bundletool .

Sie können die interne App-Freigabe verwenden , um einen debuggbaren Build Ihrer App in den Play Store hochzuladen und für Tester freizugeben.


In diesem Fall würden wir die Option "Bundle (s) erstellen" verwenden, nicht das signierte Bundle, da wir keine Debug-Apps im Play-Store veröffentlichen können
Oush

Ich würde das hauptsächlich für lokale Tests machen.
Keyboardsurfer

3
Die Veröffentlichung (anstelle von Quelldateien) von Bundletool ist hier: github.com/google/bundletool/releases
Kari

Derzeit ist es eine falsche Antwort. Weitere Antworten zum Erstellen einer apksDatei finden Sie unter.
CoolMind

1
@ericn Die erste "Veröffentlichung" einer App durchläuft den üblichen Prozess. Jegliche interne App-Freigabe, die Sie anschließend durchführen, sollte nicht durch Überprüfungen blockiert werden.
Keyboardsurfer

48

Bei der Installation des aab direkt vom Gerät konnte ich keinen Weg finden.

Es gibt jedoch eine Möglichkeit, es über Ihre Befehlszeile mithilfe der folgenden Dokumentation zu installieren. Sie können apk über BundleTool auf einem Gerät installieren

Laut dem Kommentar von "@Albert Vila Calvo" bemerkte er, dass Bundletools mit HomeBrew installiert werden sollen brew install bundletool

Sie können jetzt Extrakt-Apks aus einer AAB-Datei installieren und auf einem Gerät installieren

Extrahieren von apk-Dateien aus mit dem nächsten Befehl

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = mein-release-key.keystore --ks-key-alias = alias - -ks-pass = pass: Passwort

Argumente:

  • --bundle -> Android Bundle .aab Datei
  • --output -> Ziel und Dateiname für die generierte apk-Datei
  • --ks -> Keystore-Datei zum Generieren des Android-Bundles
  • --ks-key-alias -> Alias ​​für Keystore-Datei
  • --ks-pass -> Passwort für Alias-Datei (Bitte beachten Sie das Präfix 'pass' vor dem Passwortwert)

Dann haben Sie eine Datei mit der Erweiterung .apks. Jetzt müssen Sie sie auf einem Gerät installieren

java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / plattform-tools / adb --apks = app.apks

Argumente:

  • --adb -> Pfad zur ADB-Datei
  • --apks -> Apks-Datei muss installiert sein

23
Wenn Sie einen Mac verwenden, können Sie Bundletool mit Homebrew installieren : brew install bundletool. Führen Sie dann einfach die folgenden Befehle aus:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
Albert Vila Calvo

3
--ks-pass = pass: password gibt das Passwort für den Keystore an. Um das Passwort für die Schlüsseldatei anzugeben, verwenden Sie --key-pass = pass: password
smitty1

Ich habe das gleiche Problem. Ich habe die von Ihnen beschriebenen Schritte ausgeführt. Wenn die App jedoch auf meinem Android-Gerät installiert ist, kann ich sie nicht öffnen (sie öffnet das Schließen automatisch)
aName

Vielen Dank! --key-pass=pass:... ist erforderlich, aber seltsamerweise ist ein Passwort falsch, daher muss ich es manuell eingeben. Nachdem ... install-apks --adb=...es geschrieben hat: 'Die APKs wurden im Verzeichnis extrahiert: ...', aber dieser Ordner existiert nicht und wird nicht auf dem Gerät installiert.
CoolMind

BEISPIEL: C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
Choletski

22

Sie können nicht app - Bundle installieren [NAME].aabdirekt auf Android - Gerät , weil es Format veröffentlicht, aber es ist Art und Weise die erforderliche zu extrahieren apkaus bundleund installieren Sie es auf Ihrem Gerät, ist der Prozess wie folgt

  1. Laden Sie das Bundletool hier herunter
  2. Führen Sie dies in Ihrem Terminal aus.
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. Im letzten Schritt wird eine Datei mit dem Namen generiert. Benennen Sie sie einfach in out_bundle_archive_set.apksum out_bundle_archive_set.zipund extrahieren Sie die Zip-Datei. Springen Sie in den Ordner out_bundle_archive_set > standalones, in dem eine Liste aller Apks angezeigt wird

Es gibt die Referenz von Android-Entwicklern für Bundle-Tools Link

Android Entwickler Referenz


Es sind ein Signaturschlüssel und Kennwörter erforderlich (siehe stackoverflow.com/a/52704544/2914140 und developer.android.com/studio/command-line/bundletool) .
CoolMind

@CoolMind der Signaturschlüssel und die Passwörter sind, wenn Sie den Satz von signierten apk aus dem Bundle erstellen und apk auf dem Gerät bereitstellen möchten, überprüfen Sie die aktualisierte Antwort
Ali Tamoor

Der dritte Schritt ist wirklich notwendig. Vielen Dank.
Dhiren

Es gibt keine eigenständigen Ordner, stattdessen gibt es gestaute Splits
Gopal Singh Sirvi

13

Für MAC:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks

Habe den Job einfach ohne Probleme gemacht. Den Tag gerettet!
Asozcan

Nachdem das dritte Befehlsterminal einen Pfad für die App
angezeigt

@Furquan, dieser angezeigte Pfad ist der Pfad in Ihrem verbundenen Gerät. Der Befehl installiert die apk auf Ihrem Gerät.
Bijoy Thangaraj

4

Wenn Sie apk zu Testzwecken von Ihrem aab auf Ihrem Gerät installieren möchten, müssen Sie die Konfiguration bearbeiten, bevor Sie sie auf dem angeschlossenen Gerät ausführen.

  1. Gehen Sie zu Konfigurationen bearbeiten
    Geben Sie hier die Bildbeschreibung ein
  2. Wählen Sie die Dropdown-Liste Bereitstellen und ändern Sie sie von "Standard-APK" in "APK aus App-Bundle".Geben Sie hier die Bildbeschreibung ein
  3. Übernehmen Sie die Änderungen und führen Sie sie dann auf dem angeschlossenen Gerät aus. Die Erstellungszeit erhöht sich nach dieser Änderung.

Dadurch wird eine apk direkt auf dem vom aab angeschlossenen Gerät installiert.


Dies hat mir geholfen, einen Fehler zu replizieren, der nur beim Release-Build auftritt. Es stellt sich heraus, dass der Fehler bei der Installation von AAB auftritt. Vielen Dank.
Cerlin

Zur Verdeutlichung gehe ich davon aus, dass die Anweisungen und Screenshots von Android Studio stammen. [Ich verwende Xamarin und nicht Android Studio. Mir ist klar, dass die meisten Entwickler Android Studio verwenden.]
ToolmakerSteve

Ja, die Anweisungen und Screenshots stammen von Android Studio 3.6.3.
Kartikeya_M

0

Nein, wenn Sie eine App ohne andere Benutzer debuggen, verwenden Sie das Menü Build> Build APK (s) in Android Studio oder führen Sie es auf Ihrem Gerät / Emulator aus. Die Debug-Release-Apk wird automatisch installiert. Wenn Sie eine App mit anderen debuggen, verwenden Sie das Menü Erstellen> Signierte APK generieren . Wenn Sie die Beta-Version veröffentlichen möchten, verwenden Sie den Google Play Store. Ihre APKs befinden sich in app\build\outputs\apk\debugund app\releaseOrdnern.



0

Verwenden Sie (unter Linux): cd android ./gradlew AssemblyRelease | AssemblyDebug

Für jeden Fall wird eine nicht signierte APK generiert (zum Debuggen oder Testen).

HINWEIS: Ersetzen Sie unter Windows die ausführbare Gradle-Datei für gradlew.bat

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.