Zainstaluj pakiet aplikacji na Androida na urządzeniu

125

Zbudowałem swój projekt przy użyciu nowego formatu pakietu aplikacji na Androida. Dzięki plikom APK mogę pobrać plik APK na moje urządzenie, otworzyć go i natychmiast zainstalować aplikację. Pobrałem aplikację w pakiecie (format .aab) i mój Nexus 5X z systemem Android 8.1 nie może otworzyć pliku. Czy istnieje sposób na zainstalowanie AAB na urządzeniach w ten sam wygodny sposób, co pliki APK?

prfarlow
źródło
2
Wygląda na to, że wymaga to kilku kroków więcej niż prosty apk: developer.android.com/guide/app-bundle/test .
Mike M.

Odpowiedzi:

116

Krótka odpowiedź:

Nie bezpośrednio.

Dłuższa odpowiedź:

Pakiety aplikacji na Androida to format publikacji. Urządzenia z systemem Android wymagają .apkplików do instalowania aplikacji.

Sklep PlayStore lub inne źródło, z którego instalujesz, musi wyodrębnić apki z pakietu, podpisać każdy z nich, a następnie zainstalować je na urządzeniu docelowym.

Konwersja z .aab do .apk odbywa się za pomocą narzędzia bundletool .

Możesz użyć wewnętrznego udostępniania aplikacji, aby przesłać kompilację swojej aplikacji do debugowania do Sklepu Play i udostępnić ją testerom.

klawiszowiec
źródło
W takim przypadku skorzystalibyśmy z opcji Build bundle (s), a nie z podpisanego pakietu, biorąc pod uwagę, że nie możemy publikować aplikacji debugowania w sklepie
Play
Zrobiłbym to głównie do testów lokalnych.
keyboardsurfer
3
Wydanie (zamiast plików źródłowych) narzędzia bundletool jest tutaj: github.com/google/bundletool/releases
Kari
Obecnie jest to zła odpowiedź, zobacz inne odpowiedzi, aby utworzyć apksplik.
CoolMind
1
@ericn Początkowa „publikacja” aplikacji przechodzi zwykły proces. Żadne wewnętrzne udostępnianie aplikacji, które robisz później, nie powinno być blokowane przez recenzje.
keyboardsurfer
54

Instalując aab bezpośrednio z urządzenia, nie mogłem znaleźć na to sposobu.

Ale jest sposób na zainstalowanie go za pomocą wiersza poleceń przy użyciu następującej dokumentacji Możesz zainstalować apk na urządzeniu za pomocą narzędzia BundleTool

Według komentarza "@Albert Vila Calvo" zauważył, że aby zainstalować narzędzia pakietowe przy użyciu HomeBrew brew install bundletool

Możesz teraz zainstalować wyodrębnione apki z pliku aab i zainstalować je na urządzeniu

Wyodrębnianie plików apk za pomocą następnego polecenia

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = my-release-key.keystore --ks-key-alias = alias - -ks-pass = pass: hasło

Argumenty:

  • --bundle -> plik .aab pakietu Androida
  • --output -> Miejsce docelowe i nazwa pliku dla wygenerowanego pliku apk
  • --ks -> Plik kluczy używany do generowania pakietu Androida
  • --ks-key-alias -> Alias ​​dla pliku kluczy
  • --ks-pass -> Hasło do pliku aliasów (zwróć uwagę na prefiks „pass” przed wartością hasła)

Wtedy będziesz mieć plik z rozszerzeniem .apks Więc teraz musisz zainstalować go na urządzeniu

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

Argumenty:

  • --adb -> Ścieżka do pliku adb
  • --apks -> Plik apks musi zostać zainstalowany
Omar HossamEldin
źródło
25
Jeśli używasz Mac można zainstalować Bundletool z Homebrew: brew install bundletool. Następnie wykonaj następujące polecenia:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
Albert Vila Calvo
3
--ks-pass = pass: hasło określa hasło do magazynu kluczy. Aby określić hasło dla pliku klucza, użyj opcji --key-pass = pass: password
smitty1
Mam ten sam problem, postępowałem zgodnie z instrukcjami, które opisałeś, jednak gdy aplikacja jest zainstalowana na moim urządzeniu z
Androidem
Dzięki! --key-pass=pass:... jest wymagane, ale o dziwo hasło jest nieprawidłowe, więc muszę je wpisać ręcznie. Po napisaniu ... install-apks --adb=...: „Pakiety APK zostały rozpakowane w katalogu: ...”, ale ten folder nie istnieje i nie można go zainstalować na urządzeniu.
CoolMind
PRZYKŁAD: 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
25

Nie można zainstalować pakietu aplikacji [NAME].aabbezpośrednio na urządzeniu z systemem Android, ponieważ jest to format publikacji, ale istnieje sposób na wyodrębnienie wymaganego apkz urządzenia bundlei zainstalowanie go na urządzeniu, proces jest następujący

  1. Pobierz narzędzie pakietowe stąd
  2. uruchom to w swoim terminalu,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. Ostatni krok spowoduje wygenerowanie pliku o nazwie as out_bundle_archive_set.apks, po prostu zmień jego nazwę na out_bundle_archive_set.zipi wyodrębnij plik zip, wskocz do folderu out_bundle_archive_set > standalones, w którym zobaczysz listę wszystkich apek

Jest odniesienie od programistów Androida do linku do narzędzi pakietu

Dokumentacja dla programistów Androida

Ali Tamoor
źródło
@CoolMind klucz podpisu i hasła są, gdy chcesz zbudować zestaw podpisanego apk poza pakietem i chcesz wdrożyć apk na urządzeniu, sprawdź zaktualizowaną odpowiedź
Ali Tamoor
2
nie ma folderów z nazwami standalones, zamiast tego są nazwane podziały
Gopal Singh Sirvi
18

Dla Maca:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks
Erti-Chris Eelmaa
źródło
po trzecim terminalu poleceń pokazał ścieżkę do aplikacji, ale folder nie jest dostępny
Furquan
1
@Furquan, ta wyświetlana ścieżka jest ścieżką w podłączonym urządzeniu. Polecenie instaluje apk na twoim urządzeniu.
Bijoy Thangaraj
9

Jeśli chcesz zainstalować apk ze swojego AAB na swoim urządzeniu w celach testowych, musisz edytować konfigurację przed uruchomieniem jej na podłączonym urządzeniu.

  1. Idź do Edytuj konfiguracje
    wprowadź opis obrazu tutaj
  2. Wybierz menu rozwijane Wdrażanie i zmień je z „Domyślny plik APK” na „Plik APK z pakietu aplikacji”.wprowadź opis obrazu tutaj
  3. Zastosuj zmiany, a następnie uruchom go na podłączonym urządzeniu. Po wprowadzeniu tej zmiany czas budowy wydłuży się.

Spowoduje to zainstalowanie apk bezpośrednio na urządzeniu podłączonym z aab.

Kartikeya_M
źródło
1
Pomogło mi to zreplikować jeden błąd, który pojawia się tylko podczas kompilacji wydania. Okazuje się, że błąd pojawia się po zainstalowaniu z AAB. Wielkie dzięki.
Cerlin
Dla wyjaśnienia zakładam, że instrukcje i zrzuty ekranu pochodzą z Android Studio? [Używam Xamarin, a nie Android Studio. Zdaję sobie sprawę, że większość programistów używa Android Studio.]
ToolmakerSteve
Tak, instrukcje i zrzuty ekranu pochodzą z Android Studio 3.6.3.
Kartikeya_M
0

Nie, jeśli debugujesz aplikację bez innych użytkowników, użyj menu Build> Build APK (s) w Android Studio lub uruchom je na swoim urządzeniu / emulatorze, a apk wersji debugowania zostanie zainstalowany automatycznie. Jeśli debugujesz aplikację z innymi, użyj menu Kompiluj> Generuj podpisany plik APK ... Jeśli chcesz opublikować wersję beta, skorzystaj ze Sklepu Google Play. Twoje pliki APK będą znajdować się w folderach app\build\outputs\apk\debugi app\release.

Gaspar
źródło
0

Użyj (w systemie Linux): cd android ./gradlew assemblyRelease | assemblyDebug

Dla każdego przypadku generowany jest niepodpisany plik APK (do debugowania lub testowania)

UWAGA: W systemie Windows zamień plik wykonywalny gradle na gradlew.bat

Eddie Ruiz
źródło