我们Flutter开发中,难免有些小朋友因需求要获取打包签名的一些相关信息,下面我们来讲一下怎么获取
一 生成签名文件
我们打包安卓APK包需要先生成签名文件,需运行以下指令,生成签名文件
keytool -genkey -v -keystore GMT\_keystore.keystore -alias GMT\_keystore -keyalg RSA -keysize 2048 -validity 10000
二 创建 key.properties 文件
在根目下 androd 目录下创建一个key.properties文件,里面填入一下内容:
三 在 gradle 中配置签名
通过根目录 android >> app 目录下的 build.gradle 文件, (1) 在 android {......} 前面添加以下内容:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
(2) 在 android {......} 里面添加以下内容,注意,要放在 buildTypes{……} 的前面哦,不然又会有小朋友踩坑
signingConfigs {
release {
keyAlias keystoreProperties\['keyAlias'\]
keyPassword keystoreProperties\['keyPassword'\]
storeFile file(keystoreProperties\['storeFile'\])
storePassword keystoreProperties\['storePassword'\]
}
}
(3) 在 buildTypes{……} 中修改 release 内容
buildTypes {
release {
signingConfig signingConfigs.release
}
}
四 打包APK包
在根目录下打开终端,运行 “flutter build apk” , 生成的apk文件的位置为 build/app/outputs/flutter-apk/app-release.apk
五 下面讲一下获取这个签名相关信息
(1) 打开终端,来到和之前讲的 xxx.keystore 文件的目录,这里我们是 “jswsmart.keystore” 文件,执行以下命令 keytool -list -v -keystore jswsmart.keystore
(2) 我们再来生成证书文件(证书文件名:certificate.cer),运行下以命令,会在同级目录下,生成一个 certificate.cer 的证书文件
keytool -export -keystore jswsmart.keystore -alias jswsmart -file certificate.cer
(3) 再执行提取公钥命令
openssl x509 -inform der -in certificate.cer -pubkey -noout