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?

prfarlow
quelle
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.

Keyboard-Surfer
quelle
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
Omar HossamEldin
quelle
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

Ali Tamoor
quelle
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
Erti-Chris Eelmaa
quelle
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.

Kartikeya_M
quelle
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.

Gaspar
quelle
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

Eddie Ruiz
quelle