Мне нужно включить Fabric для разных сред сборки, а также принять во внимание, был ли apk построен с использованием Android Studio или CI-сервера (jenkins) в нашем случае. подход, что я имею в виду использование является:Как вызвать задачу градиента из productflavor
defaultConfig {
applicationId "com.pack.proj"
minSdkVersion 19
targetSdkVersion 23
versionCode 12
ext.buildNumber = System.getenv("BUILD_NUMBER") ?: "dev"
versionName "1.2.$buildNumber"
signingConfig signingConfigs.inspection
}
productFlavors {
dev1 {
resValue 'string', 'app_name', 'App Name'
resValue 'string', 'base_url', 'http://dev1.server.in/'
buildConfigField 'boolean', 'USE_FABRIC', 'true'
}
dev2 {
resValue 'string', 'app_name', 'App Name'
resValue 'string', 'base_url', 'http://dev2.server.in/'
// ********HOW DO I CALL THE TASK 'enableFabric' FROM HERE*********
}
}
task enableFabric{
if(versionName.contains('dev'))
buildConfigField 'boolean', 'USE_FABRIC', 'false'
else
buildConfigField 'boolean', 'USE_FABRIC', 'true'
}
Теперь мои вопросы
- Как вызвать задачу enableFabric из dev1 и DEV2 продукта вкусами?
- И когда я запускаю скрипт градиента, я получаю ошибку, что versionName является непризнанным свойством в task enableFabric?
также
buildConfigField 'boolean', 'USE_FABRIC', 'true'
при использовании в defaultConfig не работает для меня. когда я используюесли (BuildConfig.USE_FABRIC == верно) { // сделать что- }
в коде Java.
Я не захотите сделать это в dev2 напрямую, потому что у меня еще 20 других сред. Кроме того, если вы можете объяснить использование примера/образца кода. – Ichthyocentaurs
см. Edit please – eriuzo
извините за более поздний ответ, но BuildConfig.USE_FABRIC показывает неизвестную ошибку компиляции переменной. – Ichthyocentaurs