AndroidStudio 簽名 Gradle 配置
前面我們講了 Gradle 在 Android 項目中的配置,我們提到有一個閉包 signingConfigs 是配置 Android 應用簽名信息的。那么今天我們就來講講如何通過 AndroidStudio 對 APK 進行簽名。
1. 新建 keyStore 文件
我們下面一步步帶大家,用 AndroidStudio 來配置簽名。
首先頂部菜單欄找到 Build 點擊他我們會看到 Generate Signed Bundle/APK… 如下圖所示:

緊接著我們點擊這一欄我們會看到如下的窗口:

然后我們選擇下面的 APK 一欄,然后點擊 NEXT,我們會看到下面的一個窗口:

這個窗口就是需要我們選擇簽名文件,如果我們沒有創(chuàng)建簽名文件,我們需要點擊紅色框選中的那個按鈕創(chuàng)建一個簽名文件,然后我們會看到如下窗口:

我們看到這個窗口從上到下主要分為 3 個部分如下所示:

- 第一部分,簽名文件的存儲位置和密碼;
- 第二部分,簽名的 Key 和對應的密碼;
- 第三部分,簽名證書發(fā)布者和所有者的信息,包括組織/公司,國家,省份城市等。
填寫完我這些后我們會看到之前的窗口里面自動填寫了密碼和簽名的 key 。

然后點擊 NEXT 就會生成對應的簽名文件了。
2. 配置簽名文件信息
通過前面的一系列操作,我們就已經(jīng)生成了前面文件,下面我們就需要將簽名文件信息配置到應用中來。
首先我們點擊 File > Project Structure… 我們會看到下面的一個窗口:

我們選擇左邊一欄的 Module ,然后選中 app ,最上邊選中 Signing Configs。我們看到這里沒有任何簽名信息。緊接著我們點擊下方的 + 按鈕,創(chuàng)建一個簽名信息,這里我命名簽名信息叫 releaseConfig 。創(chuàng)建后看到如下所示窗口。

這里,我們需要依次填寫之前生成簽名文件的位置,簽名文件的密碼,簽名的 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 默認給我們內(nèi)置了很多任務,里面就包含查看應用簽名的任務 signingReport
。我們執(zhí)行這個任務就可以看到應用的簽名了。
方法二:
第二種方法就是直接使用命令查看簽名信息,我們在控制臺輸入下面的命令keytool -list -v -keystore "[簽名文件路徑]"
就可以看到簽名信息了,包括我們之前寫的組織/公司,省份,國家等。

Tips: 我們對于簽名文件的注意點就只有下面一點,設置簽名的 key 和密碼時不要太過復雜,不然在看簽名信息的時候,輸入密鑰庫口令時看不到輸入的內(nèi)容,很容易輸入錯誤。
4. 小結
到這里,我們這一節(jié)就結束了,這一節(jié)主要是講解如何通過 AndroidStudio 對應用進行簽名。這里我們平時很少動,但是一個應用肯定是要有簽名的,沒有簽名的 Relese 包是不能在手機上安裝的。
到這里我們關于 Gradle 專題要講的所有內(nèi)容也就講解完成了,這個專題我們首先認識了構建工具的發(fā)展歷史,由 Groovy 語法的簡單入門,到創(chuàng)建一個 Gradle 項目。逐步由淺入深,到我們 Android 項目中 Gradle 的配置,再到定義 Gradle 的任務。有了之前的內(nèi)容基礎,我們后面緊接著學習了 Gradle 在Android 中的實戰(zhàn),組件化 Gradle 配置, 自己定義 Gradle 日志,Gradle 多渠道打包,再到應用簽名。希望本專題的所有內(nèi)容能夠幫助大家更好的理解 Gradle ,也能夠在工作中幫助到大家。