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

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - Gradle简单使用-jks签名与命令打包


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.