flutter 应用签名 Mac


在微信开放平台创建移动应用时上图大家都遇到过,这里的应用签名是什么呢?

这里介绍说可以通过签名生成工具在已安装当前应用的手机中获取,(待会获取测试一下)我们先搞明白它是什么,这里提到了该应用签名由开发者签名该应用的keystore文件决定。

接下来我们便来探究一下这个应用签名是什么

思路:

1.创建一个keystore文件

2.创建一个Android应用

3.使用keystore文件签名该应用得到签名apk

4.使用签名生成工具查看该应用的签名

我们下面开始一步步执行

1.生成keystore文件

在自己电脑jdk的安装目录bin文件夹内打开dos命令行(cmd命令打开cd到bin目录也可以),输入如下命令:

keytool -genkey -v -keystore erp-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias erp-keystore -storetype JKS

 错误:Algorithm HmacPBESHA256 not available

解决:

Error building AAB - Flutter (Android) - Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available - Stack Overflow。

苹果电脑

keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload -storetype JKS

Windows(更改 USER_NAME)

keytool -genkey -v -keystore "c:\Users\USER_NAME\upload-keystore.jks" -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload

如果您之前已经创建了密钥库文件:(用这个解决,之前已经创建好keyStore)

keytool -importkeystore -srckeystore "/Users/luxiaoqing/bluesalary-keystore.jks" -destkeystore "/Users/luxiaoqing/bluesalary-keystore.jks" -deststoretype JKS

带有额外属性

-storetype JKS

它可以帮助我解决我的问题并成功创建捆绑包。

-storetype JKS 标记仅适用于 Java 9 或更高版本。从 Java 9 版本开始,密钥库类型默认为 PKS12。

问题,之前创建keyStore

高版本: 使用 Java v12+ 将证书导出到 PKCS12

低版本java

使用 Android Studio 版本的 Java (Java 11) 创建一个新的 jks 存储

flutter 应用签名 Mac_第1张图片

在终端目录下生成erp-keystore.keystore  文件

 flutter 应用签名 Mac_第2张图片

接下来我们在命令行输入如下命令(为了查看里面内容):

keytool -list -v -keystore erp-keystore.jks

mac没有md5  

flutter 应用签名 Mac_第3张图片

需要安装微信查看md5的签名生成器

 微信开放文档-签名生成器

在项目的android 跟目录下创建key.properties文件

storePassword=hcjt2010
keyPassword=hcjt2010
keyAlias=bluesalary
storeFile=/Users/luxiaoqing/bluesalary-keystore.jks

在项目的android 下 app 下的build.gradle文件下

android{
    ....
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    ...
}

你可能感兴趣的:(flutter,android)