1.生成 key
1 | keytool -genkey -v -keystore my-reyarn lease-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
|
- -keystore 参数后的值: my-release-key.jks,是生成的key的文件名和存放路径
- -alias 参数后的值: key 是key的名称
执行之后会填写一些信息按照提示填写即可,生成的key,copy到 android/app
下,或者直接生成时填写完整地址.
2.配置 key
在<app dir>/android/
目录下新建文件key.properties
1 | storePassword=secret
|
2 | keyPassword=secret
|
3 | keyAlias=key
|
4 | storeFile=my-release-key.jks
|
- storePassword 就是创建key时填写的口令,
- keyPassword 填写口令即可
- keyAlias 就时 -alias 后面的值
- storeFile key的文件名
3.配置 gradle
/android/app/build.gradle
修改这个代码块
修改之后
1 | def keystoreProperties = new Properties()
|
2 | def keystorePropertiesFile = rootProject.file('key.properties')
|
3 | if (keystorePropertiesFile.exists()) {
|
4 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
5 | }
|
6 | android {
|
7 | ...
|
8 | }
|
然后替换
1 | buildTypes {
|
2 | release {
|
3 |
|
4 |
|
5 |
|
6 | signingConfig signingConfigs.debug
|
7 | }
|
8 | }
|
为
1 | signingConfigs {
|
2 | release {
|
3 | keyAlias keystoreProperties['keyAlias']
|
4 | keyPassword keystoreProperties['keyPassword']
|
5 | storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
|
6 | storePassword keystoreProperties['storePassword']
|
7 | }
|
8 | }
|
9 | buildTypes {
|
10 | release {
|
11 | signingConfig signingConfigs.release
|
12 | }
|
13 | }
|
3.生成apk
最后执行打包命令
生成的apk目录:build\app\outputs\apk\app.apk
官方文档:https://flutter.dev/docs/deployment/android