Flutter学习笔记之二 apk打包

上篇记录了Flutter环境搭建,初步创建了一个项目熟悉了一下,然后试着打包了Android安装包,总的来说和一般Android项目差不多,只是Flutter用的全都是命令行完成的,不知道有没有图形化界面的方式,反正我没在studio的Build菜单里找到。

1、生成key.jks

打开你的cmd或者shell
输入命令

keytool -genkey -v -keystore 保存路径/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

在这里插入图片描述

需要说明一下 此处踩坑

最后一个命令那里提示(如果和密钥库口令相同, 按回车),这里我直接点的回车,但是后面用的时候并不是和秘钥库口令一样,建议手动输入,下面细说。
key.jks文件生成了。
2、创建key.properties配置文件
文件放在flutter_app/android/目录下
内容为:

storePassword=123456	秘钥库密码
keyPassword=123456		key密码
keyAlias=key			key别名
storeFile=D:/android/android_work_space/demo/flutter_app/key.jks		key.jks存放路径

3、配置build.gradle
打开flutter_app/android/app/build.gradle,最外层添加:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android{

}
里面buildTypes的debug修改为release,另外添加gningConfigs :

buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
gningConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}

4、打包
运行命令打包

flutter build apk

这里我运行的时候报错了:在这里插入图片描述
啥意思呢?

“从存储“D:androidandroid_work_spacedemoflutter_appkey.jks”读取密钥123456失败:在密钥存储D:\androidandroid_work_spacedemoflutter_appkey.jks中没有找到别名“123456”的密钥。”

在步骤1中秘钥口令我输的123456,在最后一步我什么都没输,按说别名应该是123456(问题解决之前步骤2中的keyAlias=123456),但是现在说找不到,然后我通过命令行看了一下key.jks的信息:

PS D:\android\android_work_space\demo\flutter_app> keytool -list -v -keystore key.jks

在这里插入图片描述
不是说“如果和秘钥库口令相同按回车”?怎么别名就成key了?不靠谱
然后我就把步骤2中的keyAlias=key了。
再次运行编译打包,成功了。
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chenyingjie_Android/article/details/85247091