签署configuration每个味道不起作用

我有一个Android应用程序有两种风格: internalproduction ,还有2种生成types: debugrelease

我试图分配签名configuration基于风味,根据文件是可行的。 我看了,发现了其他的答案,但他们似乎没有工作。 一切都在编译,但是应用程序正在使用我的机器的本地debugging密钥库进行签名。

这是我的gradle文件:

 android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0.0" } signingConfigs { internal { storeFile file("../internal.keystore") storePassword "password" keyAlias "user" keyPassword "password" } production { storeFile file("../production.keystore") storePassword "password" keyAlias "user" keyPassword "password" } } productFlavors { internal { signingConfig signingConfigs.internal applicationId 'com.test.test.internal' } production { signingConfig signingConfigs.production applicationId 'com.test.test' } } buildTypes { debug { applicationIdSuffix ".d" } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } variantFilter { variant -> if (variant.buildType.name.equals('debug') && variant.getFlavors().get(0).name.equals('production')) { variant.setIgnore(true); } } } 

注意:我也在编译classpath 'com.android.tools.build:gradle:1.1.3'

Solutions Collecting From Web of "签署configuration每个味道不起作用"

看起来,默认情况下,Android在debugging构buildtypes(androiddebugging密钥库)上设置了一个signingConfig集合,并且在为构buildtypes设置了signingConfig ,为味道忽略了signingConfig

解决方法是在debugging构buildtypessigningConfig设置为null 。 然后将使用为signingConfig提供的signingConfig来代替:

 buildTypes { debug { // Set to null to override default debug keystore and defer to the product flavor. signingConfig null applicationIdSuffix ".d" } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }