Конвертирайте AAB в APK онлайн: какво всъщност прави този инструмент
Android App Bundle (.aab) е форматът, който Google Play иска от разработчиците да качат, но не е нещо, което можете да инсталирате на телефон. Ако имате .aab файл от сървър за изграждане, CI конвейер или колега, първо трябва да го превърнете в инсталируем .apk. Тази страница ви дава две неща за тази работа: интерактивен Създател на команди AAB към APK, който записва точната команда bundletool за вашата операционна система, и AAB файлов изследовател, който отваря пакета във вашия браузър, за да можете да видите какво има вътре, преди да го конвертирате.
Самото преобразуване минава през официалния bundletool на Google, който е Java програма. Тъй като bundletool се нуждае от време за изпълнение на Java и достъп до вашето хранилище за ключове, действителната стъпка на изграждане се случва на вашата собствена машина, а не на нашите сървъри. Вашият .aab файл никога не се качва никъде. Конструкторът просто премахва догадките, така че можете да копирате правилна, готова за изпълнение команда, вместо да запомняте имена на флагове.
AAB срещу APK: Защо не можете просто да преименувате файла
Много хора търсят как да променят AAB на APK чрез преименуване на разширението и това никога не работи. .apk е единичен самостоятелен пакет, който Android може да инсталира директно. .aab е контейнер за публикуване: той съдържа вашия компилиран код и ресурси, разделени на модули, и очаква Google Play или bundletool да генерира окончателните, оптимизирани за устройство APK файлове от него. Преименуването на файла не разопакова тези модули или не подписва нищо, така че Android отказва да го инсталира. Единственият надежден начин за конвертиране на Android App Bundle към APK е да позволите на bundletool да изгради APK комплекта за вас.
Как да конвертирате AAB в APK на Windows, Mac и Linux
Стъпките са едни и същи на всяка платформа и се променя само стилът на пътя на файла, поради което конструкторът на команди по-горе има превключвател за Windows, macOS и Linux. Ето пълния поток от началото до края:
- Инсталирайте Java JDK 8 или по-нова версия. Стартирайте java -version в терминал, за да потвърдите, че Java е на вашия PATH.
- Изтеглете bundletool. Вземете най-новия bundletool-all.jar от официалната страница на Google за издания в GitHub.
- Създайте комплекта APK. Насочете bundletool към вашия пакет и го оставете да създаде .apks архив: java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
- Отворете .apks архива. Това е просто ZIP файл, така че го разархивирайте и ще намерите universal.apk вътре.
- Инсталирайте на вашето устройство. Копирайте APK на телефона си и го заредете отстрани или използвайте bundletool install-apks с устройство, свързано през USB.
Универсален APK срещу разделен APK: Кой трябва да изградите?
Ако искате един файл, който се инсталира на всеки телефон, използвайте --mode=universal. Това изгражда един универсален APK от вашия AAB, който обединява всяка CPU архитектура, плътност на екрана и език в един пакет. Той е по-голям, но е най-простата опция за тестване, архивиране или споделяне на компилация извън Play Store. Ако оставите режима извън режима, вместо това bundletool създава разделени APK файлове, които са съкратени за едно конкретно устройство, така че те се изтеглят по-малки, но трябва да инсталирате съвпадащия набор заедно. За повечето хора, които просто трябва да конвертират .aab за бързо инсталиране, универсалният APK е правилният избор.
Подписване на APK, който получавате от AAB
Android няма да инсталира APK, освен ако не е подписан. За тестване bundletool може автоматично да подписва с ключ за отстраняване на грешки, което е точно това, което прави опцията „Използване на хранилище за ключове за отстраняване на грешки“ в създателя. Ако подготвяте версия за версия, например за разпространение на вашия собствен уебсайт, подпишете я със собственото си хранилище за ключове, като попълните полетата за пътя на хранилището за ключове, паролата на хранилището за ключове, псевдонима на ключа и паролата за ключ. След това създателят добавя флаговете --ks, --ks-pass, --ks-key-alias и --key-pass, така че APK, който получавате, носи вашия реален производствен подпис вместо такъв за отстраняване на грешки за еднократна употреба.
Често срещани грешки в bundletool и как да ги поправите
Два проблема възникват отново и отново. Съобщението „bundletool: командата не е намерена“ означава, че сте се опитали да стартирате bundletool, сякаш е вградена команда. Това е JAR файл, така че винаги го извиквате с java -jar bundletool-all.jar. Грешката „Няма ключ/сертификат“ означава, че липсват подробности за подписване: или добавете --mode=universal за неподписана тестова компилация, или предоставете вашите флагове за хранилище за ключове, както е описано по-горе. Разделът за отстраняване на неизправности по-горе на страницата обхваща повече от тях и AAB Explorer ви позволява да потвърдите, че вашият пакет наистина съдържа модулите, които очаквате, преди да отделите време за отстраняване на грешки в команда.
Кога всъщност ще трябва да конвертирате AAB?
Обичайните причини са тестване на компилация на версия на реално устройство, преди да публикувате, предаване на компилация на тестер, който не използва Google Play, запазване на инсталируемо копие на собственото ви приложение за вашите записи или изпълнение на QA на хардуер, до който вътрешното тестване на Play Store не достига. Каквато и да е причината, конвертирайте само пакети приложения, които имате право да използвате, като например ваши собствени компилации или пакети, с които имате ясно разрешение да работите.