服务端相关 / AndroidStudio 签名Gradle 配置

AndroidStudio 签名 Gradle 配置

前面我们讲了 Gradle 在 Android 项目中的配置,我们提到有一个闭包 signingConfigs 是配置 Android 应用签名信息的。那么今天我们就来讲讲如何通过 AndroidStudio 对 APK 进行签名。

1. 新建 keyStore 文件

我们下面一步步带大家,用 AndroidStudio 来配置签名。
首先顶部菜单栏找到 Build 点击他我们会看到 Generate Signed Bundle/APK… 如下图所示:

紧接着我们点击这一栏我们会看到如下的窗口:

然后我们选择下面的 APK 一栏,然后点击 NEXT,我们会看到下面的一个窗口:

这个窗口就是需要我们选择签名文件,如果我们没有创建签名文件,我们需要点击红色框选中的那个按钮创建一个签名文件,然后我们会看到如下窗口:

我们看到这个窗口从上到下主要分为 3 个部分如下所示:

  • 第一部分,签名文件的存储位置和密码;
  • 第二部分,签名的 Key 和对应的密码;
  • 第三部分,签名证书发布者和所有者的信息,包括组织/公司,国家,省份城市等。

填写完我这些后我们会看到之前的窗口里面自动填写了密码和签名的 key 。

然后点击 NEXT 就会生成对应的签名文件了。

2. 配置签名文件信息

通过前面的一系列操作,我们就已经生成了前面文件,下面我们就需要将签名文件信息配置到应用中来。
首先我们点击 File > Project Structure… 我们会看到下面的一个窗口:

我们选择左边一栏的 Module ,然后选中 app ,最上边选中 Signing Configs。我们看到这里没有任何签名信息。紧接着我们点击下方的 + 按钮,创建一个签名信息,这里我命名签名信息叫 releaseConfig 。创建后看到如下所示窗口。

这里,我们需要依次填写之前生成签名文件的位置,签名文件的密码,签名的 key 和密码。填写完成后我们点击OK,就会在 build.gradle 中自动生成签名配置的闭包 。如下所示:

    signingConfigs {
        releaseConfig {
            storeFile file('/Users/leiqi/MyApplication/mkeystore')
            storePassword '123456'
            keyAlias = 'key0'
            keyPassword '123456'
        }
    }

Tips: 这里我们需要注意一下,到这里并没有完成。完成这步之后我们还需要在 buildTypes 闭包中的 release 闭包中增加签名配置,,具体如下所示:

  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

添加完这句之后我们就可以打包了。

3. 查看签名信息

我们打完包之后如何查看签名信息呢?有以下 2 种方法:

方法一:
其实 Gradle 默认给我们内置了很多任务,里面就包含查看应用签名的任务 signingReport。我们执行这个任务就可以看到应用的签名了。

方法二:
第二种方法就是直接使用命令查看签名信息,我们在控制台输入下面的命令keytool -list -v -keystore "[签名文件路径]"就可以看到签名信息了,包括我们之前写的组织/公司,省份,国家等。

Tips: 我们对于签名文件的注意点就只有下面一点,设置签名的 key 和密码时不要太过复杂,不然在看签名信息的时候,输入密钥库口令时看不到输入的内容,很容易输入错误。

4. 小结

到这里,我们这一节就结束了,这一节主要是讲解如何通过 AndroidStudio 对应用进行签名。这里我们平时很少动,但是一个应用肯定是要有签名的,没有签名的 Relese 包是不能在手机上安装的。

到这里我们关于 Gradle 专题要讲的所有内容也就讲解完成了,这个专题我们首先认识了构建工具的发展历史,由 Groovy 语法的简单入门,到创建一个 Gradle 项目。逐步由浅入深,到我们 Android 项目中 Gradle 的配置,再到定义 Gradle 的任务。有了之前的内容基础,我们后面紧接着学习了 Gradle 在Android 中的实战,组件化 Gradle 配置, 自己定义 Gradle 日志,Gradle 多渠道打包,再到应用签名。希望本专题的所有内容能够帮助大家更好的理解 Gradle ,也能够在工作中帮助到大家。