[英]How to get flavor in buildType of build.gradle?
我有我的 gradle 文件,如下所示,我在調試版本中將我的應用程序簽名為調試,並在發布版本中發布。 它有兩種口味,即開發和生產。
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
productFlavors {
develop {
// Do something
}
production {
// Do something
}
}
但是,我也在考慮以 Debug for Develop 風格(發布)的身份簽名。 我怎么能做到這一點(即訪問 buildType 中的風味類型變量)?
據我了解你的問題,你想要這樣的東西:
developDebug: signingConfigs.debug
productionDebug: signingConfigs.debug
developRelease: signingConfigs.debug
productionRelease: signingConfigs.release
您可以通過以下方式實現:
android {
productFlavors {
develop {
// Do something
}
production {
// Do something
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
// Make an unfinished release build type
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
// Finish the release build type flavor specific
def runTasks = gradle.startParameter.taskNames.toString().toLowerCase()
if (runTasks.contains("develop")) {
release {
signingConfig signingConfigs.debug
}
} else if (runTasks.contains("production")) {
release {
signingConfig signingConfigs.release
}
}
}
}
編輯:我認為這可能是一個更清潔的解決方案
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release-develop {
initWith buildTypes.release
signingConfig signingConfigs.debug
}
}
您還可以使用:
productFlavors.develop.signingConfig signingConfigs.debug
在您的發布版本類型中。
原答案:
像這樣的事情應該可以解決問題。
層次結構是 buildTypes -> defaultConfig -> productFlavors
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
defaultConfig {
signingConfig signingConfigs.release
}
productFlavors {
develop {
signingConfig signingConfigs.debug
// Do something
}
production {
// Do something
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.