def flavorParam = ...读取配置
// 配置签名
def keystoreFile = generateKeystoreIfNeed(target, flavorParam)
android.signingConfigs.register(flavorName, {
keyAlias keystoreFile.getName()
keyPassword keystorePassword
storeFile keystoreFile
storePassword keystorePassword
})
生成签名文件
private File generateKeystoreIfNeed(Project project, FlavorParamsEntity flavorParam) {
def finalKeystoreSaveFolder = new File(project.projectDir, keystoreSaveFolder)
if (finalKeystoreSaveFolder.mkdirs()) {
CommonUtils.log("create keystore save folder succeed")
}
// 示例中直接使用渠道名作为签名文件的名字和别名
// 需要特别定制可以考虑放到FlavorParamsEntity中
def keystoreFileName = flavorParam.flavorName
def keystoreFile = new File(finalKeystoreSaveFolder, keystoreFileName)
if (!keystoreFile.exists()) {
// 对应用AS生成签名时需要填写的信息
def dName = "CN=$keystoreFileName, OU=$keystoreFileName, O=$keystoreFileName, L=$keystoreFileName, ST=$keystoreFileName, C=$keystoreFileName"
// 通过命令行生成签名文件
project.exec {
commandLine(
"keytool", "-genkey",
"-alias", keystoreFileName,
"-keypass", keystorePassword,
"-keyalg", "RSA",
"-validity", "10950",
"-keystore", keystoreFile.getAbsolutePath(),
"-storepass", keystorePassword,
"-dname", dName
)
}
}
return keystoreFile
}