Android studio Gradle:如何在buildTypes中为多维风格设置signingConfig
在Android Studio(v2.2)中同步成绩文件时,我收到以下错误日志:Android studio Gradle:如何在buildTypes中为多维风格设置signingConfig,android-studio,gradle,android-productflavors,android-flavordimension,Android Studio,Gradle,Android Productflavors,Android Flavordimension,在Android Studio(v2.2)中同步成绩文件时,我收到以下错误日志: 背景: 我有一个2个版本的应用程序(例如freeApp和paidApp),用于3个开发环境(例如开发、uat和生产)。我将app.gradle文件设置为: flavorDimensions "ver", "env" productFlavors { freeApp { dimension "ver" ... } paidApp { dime
背景: 我有一个2个版本的应用程序(例如freeApp和paidApp),用于3个开发环境(例如开发、uat和生产)。我将app.gradle文件设置为:
flavorDimensions "ver", "env"
productFlavors {
freeApp {
dimension "ver"
...
}
paidApp {
dimension "ver"
...
}
dev {
dimension "env"
...
}
uat {
dimension "env"
...
}
production {
dimension "env"
...
}
}
productFlavors {
freeAppDev {
...
}
freeAppUat {
...
}
freeAppProduction {
...
}
paidAppDev {
...
}
paidAppUat {
...
}
paidAppProduction {
...
}
}
buildTypes {
alpha {
productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey
productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey
}
...
}
对于BuildType,我创建了一个定制的调试类型“alpha”,这样我就可以为自己的目的设置signingConfig:
buildTypes {
alpha {
productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey
productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey
}
...
}
custom1DebugKey、custom2DebugKey、customReleaseKey都是签名配置,这不是重点,所以我跳过粘贴代码
我想问一下,当productFlavors中有多个维度时,如何才能在“productFlavors.XXX.signingConfig”中为XXX获得正确的名称。谢谢
另外,要了解更多信息,我可以通过如下方式修改gradle文件:
flavorDimensions "ver", "env"
productFlavors {
freeApp {
dimension "ver"
...
}
paidApp {
dimension "ver"
...
}
dev {
dimension "env"
...
}
uat {
dimension "env"
...
}
production {
dimension "env"
...
}
}
productFlavors {
freeAppDev {
...
}
freeAppUat {
...
}
freeAppProduction {
...
}
paidAppDev {
...
}
paidAppUat {
...
}
paidAppProduction {
...
}
}
buildTypes {
alpha {
productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey
productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey
}
...
}
因此,看起来您仅根据环境分配签名密钥:
productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey
productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey
如果是这样的话,你可以用它:
productFlavors.dev.signingConfig signingConfigs.custom1DebugKey
productFlavors.uat.signingConfig signingConfigs.custom2DebugKey
productFlavors.production.signingConfig signingConfigs.customReleaseKey
请注意,
productFlavors
将包含每种产品风格(在您的案例中:freeApp、paidApp、dev、uat、production),但不会像您尝试使用它们那样基于维度将它们组合起来。嗨,我面临着同样的问题。你成功了吗?如果是,请输入您的解决方案。