Перетворення AAB на APK онлайн: що насправді робить цей інструмент
Android App Bundle (.aab) – це формат, який Google Play просить розробників завантажити, але його не можна встановити на телефон. Якщо у вас є файл .aab із сервера збірки, конвеєра CI або колеги, вам спочатку потрібно перетворити його на .apk, який можна встановити. Ця сторінка пропонує вам дві речі для цієї роботи: інтерактивний Конструктор команд AAB до APK, який записує точну команду bundletool для вашої операційної системи, і Файловий провідник AAB, який відкриває пакет у вашому браузері, щоб ви могли побачити, що всередині, перш ніж конвертувати його.
Саме перетворення виконується через офіційну програму Google bundletool, яка є програмою 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 на офіційній сторінці випусків GitHub від Google.
- Створіть набір 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, який об’єднує кожну архітектуру ЦП, щільність екрана та мову в один пакет. Він більший, але це найпростіший варіант для тестування, архівування або спільного використання збірки за межами 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. Незалежно від причини, конвертуйте лише пакети додатків, які ви маєте право використовувати, як-от власні збірки чи пакети, з якими ви маєте чіткий дозвіл працювати.