我有我的gradle文件,如下所示,我在调试版本中将我的应用程序签名为Debug,在发布版本中签署了Release。它有两种风味,即开发和生产。
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 flavor(发布)。我怎么能实现这一点(即访问buildType中的flavor类型变量)?
答案 0 :(得分:0)
编辑:我认为这可能是一个更清洁的解决方案
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
}
}
答案 1 :(得分:0)
据我所知,您想要这样的东西:
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
}
}
}
}