Android App Bundle'ı cihaza yükleyin


116

Projemi yeni Android App Bundle biçimini kullanarak oluşturdum. APK dosyalarıyla APK'yı cihazıma indirebilir, açabilir ve hemen uygulamayı yükleyebilirim. Uygulamamı paket (.aab biçimi) olarak indirdim ve Android 8.1 çalıştıran Nexus 5X'im dosyayı açamıyor. Cihazlara AAB'leri APK'larla aynı uygun şekilde kurmanın bir yolu var mı?


2
Görünüşe göre basit bir apk'den birkaç adım daha geçiyor: developer.android.com/guide/app-bundle/test .
Mike M.

Yanıtlar:


109

Kısa cevap:

Direkt olarak değil.

Daha uzun cevap:

Android App Bundle, bir yayınlama biçimidir. Android cihazlar, .apkuygulamaları yüklemek için dosya gerektirir .

PlayStore veya yüklediğiniz diğer herhangi bir kaynağın paketten apks çıkarması, her birini imzalaması ve ardından bunları hedef cihaza özel olarak yüklemesi gerekir.

.Aab'den .apk'a dönüştürme, bundletool aracılığıyla yapılır .

Uygulamanızın hata ayıklanabilir bir yapısını Play Store'a yüklemek ve bunu test kullanıcılarıyla paylaşmak için Dahili Uygulama Paylaşımı'nı kullanabilirsiniz .


Hangi durumda, Play-store'da hata ayıklama uygulamaları yayınlayamayacağımızı düşünürsek imzalı paketi değil,
Derleme paketleri seçeneğini kullanırız

Bunu çoğunlukla yerel testler için yapardım.
keyboardsurfer

3
Bundletool sürümü (kaynak dosyalar yerine) burada: github.com/google/bundletool/releases
Kari

Şu anda yanlış cevap, apksdosya oluşturmak için diğer cevaplara bakın .
CoolMind

1
@ericn Bir uygulamanın ilk "yayınlanması" olağan süreçten geçiyor. Daha sonra yaptığınız hiçbir Dahili Uygulama Paylaşımı incelemeler tarafından engellenmemelidir.
keyboardurfer

53

Aab'yi doğrudan cihazdan kurduğumda bunun için bir yol bulamadım.

Ancak, aşağıdaki belgeleri kullanarak komut satırınız aracılığıyla yüklemenin bir yolu vardır.BundleTool aracılığıyla bir cihaza apk yükleyebilirsiniz.

"@Albert Vila Calvo" yorumuna göre, HomeBrew kullanımı ile paket araçlarının yüklenmesinin brew install bundletool

Artık apks'i aab dosyasından yükleyebilir ve bir cihaza yükleyebilirsiniz.

Bir sonraki komuttan apk dosyalarını çıkarma

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: şifre

Argümanlar:

  • --bundle -> Android Bundle .aab dosyası
  • --output -> Oluşturulan apk dosyası için hedef ve dosya adı
  • --ks -> Android Paketi oluşturmak için kullanılan anahtar deposu dosyası
  • --ks-key-alias -> Anahtar deposu dosyası için takma ad
  • --ks-pass -> Alias ​​dosyası için parola (Lütfen parola değerinden önce 'pass' önekini not edin)

O zaman .apks uzantılı bir dosyanız olacak Yani şimdi onu bir cihaza yüklemeniz gerekiyor

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

Argümanlar:

  • --adb -> adb dosyasının yolu
  • --apks -> Apks dosyasının yüklenmesi gerekiyor

25
Eğer Mac kullanıyorsanız, Homebrew ile Bundletool yükleyebilirsiniz: brew install bundletool. Ardından komutları şu şekilde çalıştırın:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
Albert Vila Calvo

3
--ks-pass = pass: password, anahtar deposu için parolayı belirtir. Anahtar dosyası için şifreyi belirtmek için --key-pass = pass: password
smitty1

Aynı sorunla karşılaşıyorum, tarif ettiğiniz adımları takip ettim, ancak uygulama android cihazıma yüklendiğinde açamıyorum (otomatik olarak kapanıyor)
aName

Teşekkürler! --key-pass=pass:... gerekli, ancak garip bir şekilde şifre yanlış, bu yüzden manuel olarak yazmam gerekiyor. ... install-apks --adb=...Yazdıktan sonra : 'APK'ler dizine çıkarıldı: ...', ancak bu klasör mevcut değil ve cihaza yüklenmiyor.
CoolMind

ÖRNEK: 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

24

Sen uygulama grubunun yükleyemezsiniz [NAME].aabo biçim yayıncılık çünkü android cihaza doğrudan, ancak gerekli ayıklamak için bir yolu yoktur apkgelen bundleve cihaza yüklemek, süreç olarak izleyin

  1. Bundletool'u buradan indirin
  2. bunu terminalinizde çalıştırın,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. Son adım olarak adlandırılmış bir dosya oluşturacak out_bundle_archive_set.apks, sadece onu yeniden adlandırın out_bundle_archive_set.zipve zip dosyasını çıkarın, klasöre atlayın out_bundle_archive_set > standalones, burada tüm apk'lerin bir listesini göreceksiniz

Paket araçları bağlantısı için android geliştiricilerinin referansı var

android geliştirici referansı



@CoolMind imzalama anahtarını ve şifreleri, imzalı apk setini paket dışında oluşturmak istediğinizde ve cihaza apk dağıtmak istediğinizde, güncellenmiş yanıtı kontrol edin
Ali Tamoor

3. adım gerçekten gerekli, çok teşekkürler.
Dhiren

bağımsız olarak adlandırılmış bir klasör yok, bunun yerine adlandırılmış bölmeler var
Gopal Singh Sirvi

16

Mac için:

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

Sadece işi sorunsuz yaptım. Günü kurtardı!
asozcan

üçüncü komut terminali uygulama için bir yol gösterdikten sonra, ancak klasör mevcut değil
Furquan

1
@Furquan, görüntülenen yol, bağlı cihazınızdaki yoldur. Komut, apk'yi cihazınıza yükler.
Bijoy Thangaraj

7

Test amacıyla aab'nizden cihazınıza apk yüklemek istiyorsanız, bağlı cihazda çalıştırmadan önce yapılandırmayı düzenlemeniz gerekir.

  1. Yapılandırmaları Düzenle'ye gidin
    görüntü açıklamasını buraya girin
  2. Dağıt açılır menüsünü seçin ve "Varsayılan apk" yerine "uygulama paketinden APK" olarak değiştirin.görüntü açıklamasını buraya girin
  3. Değişiklikleri uygulayın ve ardından bağlı cihazda çalıştırın. Bu değişikliği yaptıktan sonra yapım süresi artacaktır.

Bu, doğrudan aab'den bağlanan cihaza bir apk yükleyecektir.


1
Bu, yalnızca sürüm yapısında görünen bir hatayı kopyalamama yardımcı oldu. AAB'den yüklendiğinde hatanın göründüğü ortaya çıktı. Çok teşekkürler.
Cerlin

Açıklığa kavuşturmak için, talimatların ve ekran görüntülerinin Android Studio'dan geldiğini varsayıyorum. [Android Studio kullanmıyorum, Xamarin kullanıyorum. Çoğu geliştiricinin Android Studio kullandığını biliyorum.]
ToolmakerSteve

Evet, talimatlar ve ekran görüntüleri android studio 3.6.3'ten alınmıştır.
Kartikeya_M

0

Hayır, diğer kullanıcılar Android Studio'daki Build> Build APK (s) menüsünü kullanmadan veya cihazınızda / emülatörünüzde çalıştırmadan bir uygulamada hata ayıklıyorsanız , hata ayıklama sürümü apk otomatik olarak yüklenir. Başkalarıyla bir uygulamada hata ayıklıyorsanız Oluştur> İmzalı APK Oluştur ... menüsünü kullanın. Beta sürümünü yayınlamak istiyorsanız Google Play Store'u kullanın. APK'larınız app\build\outputs\apk\debugve app\releaseklasörler içinde olacak .



0

Şunu kullanın (Linux'ta): cd android ./gradlew assemblyRelease | assemblyDebug

Her durum için imzasız bir APK oluşturulur (hata ayıklama veya test için)

NOT: Windows'ta gradlew.bat için gradle yürütülebilir dosyasını değiştirin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.