Android с несколькими вариантами сборки
У нас есть проект с несколькими вариантами, и каждый вариант имеет 3 различных типа сборки: отладка, контроль качества и выпуск.
productFlavors {
flavor1 {}
flavor2 {}
flavor3 {}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
qa {
applicationIdSuffix ".qa"
}
release {
..
}
Но для каждого аромата и buildType нам нужны разные зависимости библиотеки. Например:
compile 'baseUrl:myLibrary:1.0.0:flavor1Release@aar'
compile 'baseUrl:myLibrary:1.0.0:flavor1Qa@aar'
...
compile 'baseUrl:myLibrary:1.0.0:flavor3Qa@aar'
Можем ли мы добавить эти зависимости с помощью скрипта Groovy?
2 ответа
Решение
- Если вы хотите создать несколько типов сборки в нашем единственном проекте. Поэтому вам нужно следовать этому /questions/17956785/kak-zapustit-razlichnyie-variantyi-produkta-v-android-studio/56762660#56762660 Я использую следующий код, работающий нормально, поэтому никуда не уходите, просто перейдите по ссылке.
Я надеюсь, что этот код поможет вам в полной мере.
Я знаю, что вы можете определить конкретную зависимость для buildType, как это
debugCompile 'baseUrl:myLibrary:1.0.0:debugLib@aar'
releaseCompile 'baseUrl:myLibrary:1.0.0:release:Lib@aar'
- компилировать: основное приложение
- androidTestCompile: тестовое приложение
- debugCompile: тип сборки отладки
- releaseCompile: релиз Тип сборки.
Поскольку невозможно создать APK, у которого нет связанного типа сборки, APK всегда конфигурируется с двумя (или более) конфигурациями: Compile и Compile. Создание нового типа сборки автоматически создает новую конфигурацию на основе его имени.
Кажется, что он также отлично работает с ароматом, как описано здесь (но не с flavourDimensions)
Делать это для варианта (buildType+Flavor) кажется немного больше работы. В противном случае вы можете определить свою библиотеку как реальный библиотечный проект и использовать такой синтаксис
Чтобы создать зависимость от другого опубликованного артефакта, необходимо указать, какой из них использовать:
dependencies {
flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
От: http://tools.android.com/tech-docs/new-build-system/user-guide