抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

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


0条评论

发表评论