如何为不同的变体设置不同的签名配置?
例如,我们目前有两种版本的buildtypes Debug/Beta/Release,免费和付费,产生了6种变体.为了使它更容易一点,让我们忘记Debug变体,只关注freeBeta/paidBeta/freeRelease/paidRelease.
我想要的是,每个变体都使用单独的不同的signedConfig.
到目前为止,我能找到的唯一解决方案是将signingConfigs置于buildTypes中,以便所有Beta变体都具有相同的signingConfigs:
buildTypes {
beta {
signingConfigs.beta
}
release {
signingConfigs.release
}
}
Run Code Online (Sandbox Code Playgroud)
或者,使用flavor,在这种情况下,所有免费变体都具有相同的signingConfigs:
productFlavors {
free {
signingConfig signingConfigs.free
applicationId 'com.example.free'
}
paid {
signingConfig signingConfigs.paid
applicationId 'com.example.paid'
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在当前的productFlavor闭包中执行此操作?只能通过覆盖android.applicationVariants.all { variant ->并根据某些命名方案或其他一些丑陋的黑客手动为每个应用程序变体应用signingConfig 来解决这个问题吗?
我也找到了这个答案,但它似乎不适用于最新的构建工具; 编译时我收到以下错误:
FAILURE:构建因异常而失败.
其中:构建文件'/home/dev/projects/app/build.gradle'行:61
出了什么问题:评估项目':app'时出现问题.
在ProductFlavor容器上找不到属性'free'.