Объединение нескольких apks из пакета в один
Можно ли объединить несколько apks, сгенерированных через комплект приложений Android, в один устанавливаемый / распространяемый apk?
Я попытался установить через adb install-множественный, но таким образом, это не распространяется.
3 ответа
Команда Bundletool build-apks имеет --mode=universal
флаг, который позволяет вам создать универсальный APK, который содержит все.
Он работает на App Bundle, а не на сгенерированных APK.
Не уверены, что это все еще проблема для вас? Что касается официальных документов Android:
https://developer.android.com/studio/command-line/bundletool#device_specific_apks
ты должен быть способен
Извлечение APK для конкретного устройства из существующего набора APK
с помощью пакета инструментов
bundletool extract-apks
--apks=/MyApp/my_existing_APK_set.apks
--output-dir=/MyApp/my_pixel2_APK_set.apks
--device-spec=/MyApp/bundletool/pixel2.json
с
- --apks => ваш набор apk
- --output-dir => желаемый вывод
- --device-spec => json-файл с особенностями вашего устройства
Если это не решит вашу проблему, и вы приобрели пакет в первую очередь через магазин игр, это также может вам помочь:
Поделитесь ссылкой для установки Чтобы поделиться ссылкой для установки соответствующего APK для конкретного устройства, который Google Play генерирует из вашего набора приложений, выполните следующие действия. Откройте страницу обозревателя комплектов приложений (Выпуск > Проводник комплектов приложений). Выберите фильтр версий в правом верхнем углу страницы. В таблице «Выберите версию» щелкните стрелку вправо на версии, которую хотите просмотреть. Выберите вкладку «Загрузки». Чтобы поделиться ссылкой для установки APK-файла для конкретного устройства, выполните следующие действия. В разделе «Внутренняя ссылка для общего доступа к приложению» выберите «Копировать общую ссылку». Поделитесь ссылкой. Совет. Вы можете выбрать «Управление доступом», чтобы перейти на страницу внутреннего общего доступа к приложениям и быстро поделиться пакетами приложений и ссылками на APK со своей командой. Чтобы узнать больше, перейдите к разделу Общий доступ к пакетам приложений и APK внутри компании.
как описано здесь: https://support.google.com/googleplay/android-developer/answer/9844279?hl=en
Возможно, вы использовали abi split . Просто положи universalApk true
внутри вашего сплита, как показано ниже, вы получите один apk для всех.
android {
splits {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
// By default all ABIs are included, so use reset() and include to specify that we only
// want APKs for x86, armeabi-v7a, and mips.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
// Specifies that we want to also generate a universal APK that includes all ABIs.
universalApk true
}
}
//...
}