#android #gradle #groovy
Вопрос:
Я настроил 2 типа сборки, как это:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
versionNameSuffix "-prod"
signingConfig signingConfigs.prod
archivesBaseName "$versionName"
}
dev {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
versionNameSuffix "-dev"
signingConfig signingConfigs.dev
archivesBaseName "$versionName"
}
}
Проблема в том, что я получаю эту ошибку: > Could not get unknown property 'versionName'
Почему это не работает? Проблема возникает в archivesBaseName, и кажется, что $versionName не распознан
Комментарии:
1. потому что это не часть
buildTypes.xxx
«ноdefaultConfig
«… он недоступен там, потомуversionName
что еще не готов, так как это зависит от пересеченияbuildTypes
сproductFlavors
Ответ №1:
Попробуйте вот это :
Имя версии-это параметры, которые определяются в defaultConfig. Поле имени версии захватывает данные из defaultConfig.
Прежде всего, Android отдает приоритет данным defaultConfig, а затем переопределяет данные, если данные совпадают.
flavorDimensions "versionCode"
flavorDimensions "versionName"
flavorDimensions "appId"
productFlavors {
UAT {
dimension "versionCode"
dimension "versionName"
dimension "appId"
buildConfigField "String", "BASE_URL", '"https://www.google.com/staging/app/api/v1/"'
buildConfigField "boolean", "IS_LOCAL_DEV", "false"
buildConfigField "boolean", "IS_UAT", "true"
}
QA {
dimension "versionCode"
dimension "versionName"
dimension "appId"
buildConfigField "String", "BASE_URL", '"https://www.google.com/staging/app/api/v1/"'
buildConfigField "boolean", "IS_LOCAL_DEV", "false"
buildConfigField "boolean", "IS_UAT", "false"
}
}
Комментарии:
1. Пожалуйста, не публикуйте только код без объяснения того, как это поможет OP