Я работаю над проектом, где у нас есть несколько модулей, каждый из которых имеет ряд зависимостей от других модулей и т. Д. И т. Д. Мы перенесли наш проект в Gradle (а также изменили структуру, чтобы приспособить его к дефолтам Gradle) некоторое время назад, потому что нам нужна была универсальность при создании разных версий приложения: free vs paid, debug (no proguard) vs release (proguard) и т. Д. Мы были очень взволнованы, когда мы завершили миграцию, но это счастье быстро растворилось в луже грязи, когда время постройки стало больно. Выполнение довольно простых изменений кода и развертывание приложения на телефоне занимает 90-120 секунд, и это просто неприемлемо.Buck-building android app with multiple Gradle flavors/build types and manifestests
Итак, мы решили дать Бак попробовать, так как мы не слышали ничего, кроме хороших слов от других разработчиков. После очень небольшого времени (меньше, чем у Gradle) нам удалось успешно свернуть наше приложение (что, к сожалению, не означает «правильное создание APK», но, по крайней мере, оно построено). Дело в том, что, как правило, у нас есть один файл манифеста за аромат, и, если я не упустил что-то фундаментальное, Buck позволяет вам указывать файлы манифеста при использовании правила android_binary
. Результатом этого является то, что файл манифеста сгенерированного APK содержит только шаблонный код первого модуля уровня, с которого начинается сборка цепи Gradle по:
main -> debug -> free/paid -> common
То есть, файл манифеста содержит только манифест Мэйна. Это правило находится в файле верхнего уровня BUCK, который является файлом, который содержит псевдоним, указанный в .buckconfig.
Я уверен, что я делаю что-то неправильно. Это не имеет смысла. Бак не позволяет вам иметь несколько манифестаций.
Любые идеи?