AndResGuard
AndResGuard copied to clipboard
无法签名问题
问题:keystoreAlias过长可能会导致签名失败!
发现过程: 今天打包项目A,一直不能签名成功,用了项目B的签名替换,成功了。但是把项目A的签名替换到项目B中,项目B也能打包成功。 项目A用正常的assembleRelease命令也是可以打包的。这下把我整晕了,到底是项目的问题,还是签名的问题? 项目A是一个很简单的小项目,仔细对比了一下build文件,没什么问题。然而签名文件又会有什么问题呢?不死心,就反复生成多个签名,反复打包。这些签名文件最大的差异只在keystoreAlias这个值上。 当我把keystoreAlias改短并小写之后,打包正常了! 请修复。
补充一下环境: AS:3.3.2, Build:3.2.0, compileSdkVersion: 28, OS:WIN10
keystoreAlias过长可能会导致签名失败!
是多长呢? 可否提供一下出错的keystoreAlias?
出错的Alias为:MultifuncFlashlight 之后改为mfl,正常打包。
更正之前的Bug,之前的Alias会影响自定义apk名的长度。
最近同事发现你们这个库当自定义apk名过长时签名失败。
出错的apk名长度
90位
改小长度后签名正常。
自定义apk名设置方式,在主项目build.gradle中:
applicationVariants.all {
def buildType = it.buildType.name
def fileName
def createTime = new Date().format("YYYY-MM-dd", TimeZone.getTimeZone("GMT+08:00"))
it.outputs.each {
if (buildType == "release") {
fileName = "release_V${defaultConfig.versionName}_N${defaultConfig.versionCode}_${appname}_${defaultConfig.applicationId}_${createTime}.apk"
}
it.outputFileName = fileName
}
}