flutter 签名和获取应用签名

2,852 阅读1分钟

参考官方文档:flutter.cn/docs/deploy…

1. 生成签名

  1. 打开jdk 的运行目录,如 C:\Program Files\Java\jdk1.8.0_311\bin

  2. 找到有没有 keytool.exe文件,再打开cmd程序,执行以下命令,按照命令提示输入完成步骤后,结果生成一个密钥my_key.jks文件(重要文件请做好备份),放到d盘根目录下,有C:\my_key.jks

C:\Program Files\Java\jdk1.8.0_202\bin> .\keytool  -genkey -v -keystore c:/my_key.jks -keyalg RSA -keysize 2040 -validity 10000 -alias key

遇到的问题 keytool 错误: java.io.FileNotFoundException: c:\my_key.jks (拒绝访问。)

管理员身份运行命令提示符

2. 打包

  1. 打开Android Studio中的flutter项目(没有的话自己创建),在根目录下有android目录,创建一个配置文件/android/key.properties,内容如下,以下密码是自己创建密钥时填的,自己替换即可
storePassword = <库密钥密码>
keyPassword = <密钥密码>
keyAlias = key
storeFile = D:\\my_key.jks

记得把<>去掉!!

storePassword=123456 //密码 
keyPassword=123456//密码 
keyAlias=flutter_key //别名 
storeFile=../flutter_key_store.jks //key文件路径,在Android目录下
  1. 在/android/app/build.gradle文件中插入以下几段代码
def localProperties = new Properties()

//...
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    localProperties.load(new FileInputStream(keystorePropertiesFile))
}
//...


android {
    //...

    signingConfigs {
        release {
            keyAlias localProperties['keyAlias']
            keyPassword localProperties['keyPassword']
            storeFile file(localProperties['storeFile'])
            storePassword localProperties['storePassword']
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            signingConfig signingConfigs.release
            //...
        }

    }

}

flutter {
    //...
}

最后执行flutter build apk 发布正式版 运行flutter build apk (flutter build 默认会包含 --release选项)。 打包好的APK位于/build/app/outputs/apk/app-release.apk。

3. 查看签名

方法1. 解析 在有签名文件的情况下获取应用签名: keytool -list -v -keystore 签名文件路径 keytool -list -v -keystore c:/my_key.jks

显示如下

MD5: 8D:DB:34:2F:2D:A5:40:84:02:D7:56:8A:F2:1E:29:F9

把MD5值大写转小写后删除冒号就是我们需要的签名了

8ddb342f2da5408402d7568af21e29f9

方法2. 使用工具查看

下载“签名生成工具”并安装到手机。在该手机上安装正式打包的APK并运行,通过签名生成工具输入包名get signature获取应用签名,copy to clipboard即可。

 在此贴出通过查询keystore获取的MD5,以作对比

developer.android.google.cn/studio/publ…