Flutter之Android打包

1.生成 key

1
keytool -genkey -v -keystore my-reyarn lease-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
  1. -keystore 参数后的值: my-release-key.jks,是生成的key的文件名和存放路径
  2. -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
android {
2
      ...
3
}

修改之后

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
        // TODO: Add your own signing config for the release build.
4
        // Signing with the debug keys for now,
5
        // so `flutter run --release` works.
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

1
flutter build apk

官方文档:https://flutter.dev/docs/deployment/android


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!