天天看点

android jks 命令签名,Gradle简单使用-jks签名与命令打包

很多人都知道AS中的generate signed APK,但是估计觉得麻烦的也不少,今天恰好看到如何在gradle中配置jks密码等等,便将错误等记录下来,以备以后查看

准备篇

在app.gradle中配置两个地方即可,signingConfigs是添加的部分signingConfigs{

//签名打包

release {

storeFile file("lckiss.jks")

storePassword"password"

keyAlias "lckiss"

keyPassword "password"

}

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

//配置签名密匙

signingConfig signingConfigs.release

}

}

这里有一点需要注意,signingConfigs必须写在buildTypes前面 否则报错:Error:(23, 0) Could not get unknown property 'release' for SigningConfig container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer.

如何编译release版本?AS自带控制台(一般情况下已经自动切换好路径)执行下面语句即可:./gradlew assembleRelease

如果你有多个Module,那么你可能会遇到另外一个错误:Execution failed for task ':kotlin:validateSigningRelease'.

> Keystore file /Volumes/Materials/Code/Android/HotFix/AndFix/kotlin/lckiss.jks not found for signing config 'release'.

这个是路径问题,jks文件需要与app的gradle文件处于同级目录,比如我的是在AndFix项目中的kotlin Module中,所以需要放在kotlin目录下。

此外,根据是否配置release,assembleRelease会对所有的Module生成release APK,并且路径均一致,区别在于是否真正签名。

当然你也可以在signingConfigs中配置debugConfig,并且可以参考此文章:https://www.jianshu.com/p/76fadcbe211f