使用 Flutter 完成移动端 App 项目开发后,首次打包的步骤稍感复杂,但熟悉后也可轻车熟路。经总结整个过程可分为四个步骤,即:创建 jks 密匙库丨添加 properties 并指定 jks丨更新 gradle 并指定 properties丨执行 apk 生成命令
本文将逐步演示如何四步生成 Android apk,并附加过程中可能遇到的问题及解决方案,若您有遇到其它相关问题,非常欢迎在评论中留言,我和其他读者小伙伴们将帮助解决并持续更新至此文,达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧!
第一步:创建 jks 密匙库
在 Studio Terminal 对话框内输入 keytool
命令,其中 -keystore E:/key.jks
表示存储位置,-validity 10000
表示有效期单位是【天】,-alias key
表示别名。确认无误后回车
`keytool -genkey -v -keystore E:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key`
填写密码及其它所需的详细信息后,需要确认填写信息,输入字母 y
表示【确定】,输入 n
则会要求重新填写所有信息。之后回车
`输入密钥库口令:(设置密码)
再次输入新口令:(重复密码)
您的名字与姓氏是什么?
[Unknown]: xxx
您的组织单位名称是什么?
[Unknown]: xxx
您的组织名称是什么?
[Unknown]: xxx
您所在的城市或区域名称是什么?
[Unknown]: xxx
您所在的省/市/自治区名称是什么?
[Unknown]: xxx
该单位的双字母国家/地区代码是什么?
[Unknown]: china
CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=china是否正确?
[否]: y`
生成完成后找到相应本地目录可获取 .jks 文件
`正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=china
输入 <key> 的密钥口令
(如果和密钥库口令相同, 按回车):
[正在存储E:/key.jks]`
第二步:添加 properties 并指定 jks
在 android 目录下创建 key.properties 并配置 storePassword
(密匙库密码)、keyPassword
(密匙密码)、keyAlias
(别名)、storeFile
(jks文件地址)
添加如下四项配置信息,无需''
或""
,在 =
号后直接填写即可
`storePassword=xxxx
keyPassword=xxxx
keyAlias=xxxx
storeFile=xxxx`
第三步:更新 gradle 并指定 properties
在 android -> app -> build.gradle 文件中 android {
标签前增加 key.properties 文件解析地址
`def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
// 省略
}`
第四步:执行 apk 生成命令
在 Studio Terminal 内输入命令 flutter build apk
,稍等片刻等待 apk 生成。生成成功后即可在 build -> app -> outputs -> apk 文件夹中获取最终打包出来的 apk 文件安装试用
`D:flutterUtils**************************>flutter build apk
Initializing gradle... 1.2s
Resolving dependencies... 5.5s
Running Gradle task 'assembleRelease'... 26.1s
Built buildappoutputsapkreleaseapp-release.apk (14.3MB).`
常见问题
error:flutter 不是内部或外部命令,也不是可运行的程序,或批处理文件。
环境变量未配置或未配置正确。打开 我的电脑 -> 高级系统设置 -> 环境变量 -> 用户变量 增加或检查以下三个变量
PATH
:本地 flutter bin 目录路径PUB_HOSTED_URL
:https://pub.flutter-io.cn(固定,国内需设置)FLUTTER_STORAGE_BASE_URL
:https://storage.flutter-io.cn(固定,国内需设置)
其中 PATH
若已存在则在尾部添加 ;
后追加即可,不存在则新建用户变量并添加
常见问题
error:Execution failed for task ‘:app:validateSigningRelease’.
检查 key.properties 文件中 .jks 的地址配置的是否正确,且 windows 系统下需要将 .jks 地址中的 ` 替换为
/`
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。