一般簽名都是放在buildTypes里面:
...
android {...defaultConfig {...}signingConfigs {release {storeFile file("myreleasekey.keystore")storePassword "password"keyAlias "MyReleaseKey"keyPassword "password"}}buildTypes {release {...signingConfig signingConfigs.release}}
}
但是多渠道時,使用配置的優先級從高到低分別是buildTypes、productFlavor、defaultConfig,如果按上面配置的話,根本修改不了簽名。所以修改成以下:
android {...signingConfigs {release {storeFile file("myreleasekey.keystore")storePassword "password"keyAlias "MyReleaseKey"keyPassword "password"}demo {storeFile file("myreleasekey.keystore")storePassword "password"keyAlias "MyReleaseKey"keyPassword "password"}}defaultConfig {signingConfig signingConfigs.release //默認簽名}buildTypes {debug{signingConfig null //這里一定要置null,否則gralde會插入默認簽名}release{...}}// Specifies one flavor dimension.flavorDimensions "version"productFlavors {demo {dimension "version"applicationIdSuffix ".demo"versionNameSuffix "-demo"signingConfig signingConfigs.demo //渠道簽名}full {dimension "version"applicationIdSuffix ".full"versionNameSuffix "-full"}}
}
按上面配置完后,渠道可以按照自己需求替換簽名了。特別注意debug類型那里要置signingConfig null
,否則編譯debug版本時簽名會不生效,因為gradle會插入默認簽名,替換掉渠道的簽名。