我們Flutter開發(fā)中樟氢,難免有些小朋友因需求要獲取打包簽名的一些相關(guān)信息冈绊,下面我們來(lái)講一下怎么獲取
一 生成簽名文件
我們打包安卓APK包需要先生成簽名文件,需運(yùn)行以下指令埠啃,生成簽名文件
keytool -genkey -v -keystore GMT_keystore.keystore -alias GMT_keystore -keyalg RSA -keysize 2048 -validity 10000
二 創(chuàng)建 key.properties 文件
在根目下 androd 目錄下創(chuàng)建一個(gè)key.properties文件死宣,里面填入一下內(nèi)容:
三 在 gradle 中配置簽名
通過(guò)根目錄 android >> app 目錄下的 build.gradle 文件,
(1) 在 android {......} 前面添加以下內(nèi)容:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
(2) 在 android {......} 里面添加以下內(nèi)容碴开,注意毅该,要放在 buildTypes{……} 的前面哦,不然又會(huì)有小朋友踩坑
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
(3) 在 buildTypes{……} 中修改 release 內(nèi)容
buildTypes {
release {
signingConfig signingConfigs.release
}
}
四 打包APK包
在根目錄下打開終端潦牛,運(yùn)行 “flutter build apk” , 生成的apk文件的位置為 build/app/outputs/flutter-apk/app-release.apk
五 下面講一下獲取這個(gè)簽名相關(guān)信息
(1) 打開終端眶掌,來(lái)到和之前講的 xxx.keystore 文件的目錄,這里我們是 “jswsmart.keystore” 文件巴碗,執(zhí)行以下命令
keytool -list -v -keystore jswsmart.keystore
(2) 我們?cè)賮?lái)生成證書文件(證書文件名:certificate.cer)朴爬,運(yùn)行下以命令,會(huì)在同級(jí)目錄下良价,生成一個(gè) certificate.cer 的證書文件
keytool -export -keystore jswsmart.keystore -alias jswsmart -file certificate.cer
(3) 再執(zhí)行提取公鑰命令
openssl x509 -inform der -in certificate.cer -pubkey -noout