Gradle自动签名release的apk

Gradle的任务可以帮我们自动完成很多重复的工作,这里介绍下如何自动对发布的apk进行签名。

signing.gradle

在app目录下新建signing.gradle文件,文件名可以根据需要修改。signing.gradle内容如下:

ext.signing = [
        storeFilePath : '/path/to/keystore file',
        storePassword : 'store password',
        keyAlias : 'key alias',
        keyPassword : 'key password',
]

这里配置了用于签名的四个属性,ext表示这些属性可以在其他的gradle文件中引用,如:

project.signing.storeFilePath

另外,为了避免keystore证书泄漏,建议不要把signing.gradle文件添加到类似SVN,Git仓库里。

build.gradle

在build.gradle文件里添加以下内容:

def signingFilePath = 'signing.gradle'
def performSigning = file(signingFilePath).exists()
if (performSigning) {
    apply from: signingFilePath
}

这里判断是否存在signing.gradle签名的配置文件。如果存在在应用该gradle文件。

android.signingConfigs

根据是否存在signing.gralde。如果存在,在android节点添加signingConfigs配置,内容如下:

android {
    if (performSigning) {
        signingConfigs {
            release {
                storeFile file(project.signing.storeFilePath)
                storePassword project.signing.storePassword
                keyAlias project.signing.keyAlias
                keyPassword project.signing.keyPassword
                v1SigningEnabled true
                v2SigningEnabled true
            }
        }
    }
}

android.buildTypes

在release的buildType里添加signingConfigs.release,如下:

buildTypes {
    release {
        ...
        if (performSigning) {
            signingConfig signingConfigs.release
        }
    }
}

这样就完成了Gradle自动签名release apk的任务。

执行

./gradlew assembleRelease

版权声明:著作权归作者所有。

相关推荐

Java使用Gradle依赖配置compile,implementation和api的区别

这个主要看Java项目所使用的Gradle的版本。Gradle3.4新增了Java-library插件,java-library插件使用了新的依赖配置implementation和api。旧的依赖配置compile被废弃。Gradle3.4之前的版本java插件apply plugin: 'java' 添加依赖dependencies { compile '

PHP类自动加载spl_autoload_register()

在PHP有两种方式实现类的自动加载:__autoload()和spl_autoload_register()。但由于__autoload()是我们自己定义的函数,它只允许被定义一次,这样很容易导致冲突,显得很不灵活,php 7已经把__autoload()废弃。spl_autoload_register()是spl标准库提供的函数,它允许我们多次调用,根据需要加载多个不同的autoloa

Gradle配置implementation、api与compile的区别

自Gradle 3.4开始,compile被废弃,取而代之的是implementation和api两个配置项。掌握这三者的区别实际上就是要清楚什么情况使用implementation替换compile,什么情况下使用api替换compile。implementation替换compile使用implementation配置依赖,对Gradle来说:编译时:不允许外部模块调用此依赖包,除非

HTML 5关闭表单的自动填充(Autocompletion)

在HTML 5可以使用autocomplete属性关闭表单的自动填充。autocomplete="off" autocomplete可以在两个地方使用:form标签和input等输入标签form标签在form标签添加autocomplete="off"是关闭整个表单的自动填充。<form method="post"