Android打包
打包过程
1. app 签名
如果您有现有 keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个:
keytool -genkey -v -keystore D:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
- -keystore 参数后的值:D:/key.jks 是在D盘下生成一个
key.jks
的文件。文件名称可以自定义。 - -alias 参数后面的值:key 是app签名文件的别名,不一定是key也可以自定义别名。
把生成好的文件找一目录放好。
注意: 保持文件私密; 不要将它加入公共源代码控制中。
2. 配置key
在项目android目录下新建文件 “ key.properties ”
storePassword=密匙库口令
keyPassword=key密匙口令
keyAlias=key别名
storeFile=路径
列如:
storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=D:/001/001/flutter/key.jks
3. 配置build.gradle
3.1. 打开android/app/build.gradle
文件
找到
android {
在android {之前加上以下三句
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
...
3.2. 找到以下代码
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
把这段代码替换为:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
// 替换成 release
signingConfig signingConfigs.release
}
}
4. 最后一步开始打包apk
在Terminal中输入命令 “ flutter build apk
”
最后生成的apk(app-release.apk)在项目目录的 build\app\outputs\apk\release
里
我在打包过程中遇到的报错和踩过的坑
gradle 版本错误

android/gradle/gradle-wrapper.properties
文件。把最后一行的
gradle-4.10.2-all.zip
改为gradle-5.6.2-all.zip
后,在把build
目录和android
目录下的.gradle
目录删除重新编译。注意:是
.gradle
不是gradle
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
除了以上的原因外,还有其他原因也会导致这个错误出现。例如:项目的应用图标大小与对应的图标目录不一致或者启动页图片有问题,在打包时也会出现这个问题。
推荐使用插件自动生成应用图标。
flutter_launcher_icons
启动页图片问题报错
failed to read PNG signature: file does not start with PNG signature.
这个问题真是我不小心踩的坑,本来我的启动页图片是jpg
文件,但是我把它改成了png
图片。
项目开发过程中倒是没出什么问题,但是打包就出现以下的问题了
