1.准备好keyName.jks(Apk签名文件)后才进行如下动作:
(如果不知道怎么准备可以看我上一篇文章 flutter打包签名文件准备)
新建文件夹key在 项目/android/app下
将keyName.jks复制到该文件夹下
(此时我的项目中为:flu_app/android/app/key/sign.jks ,我的签名文件命名为sign.jsk,
以后内容我全部以该sign.jsk指apk签名文件)
如图:
2.在项目/android文件夹下新增 key.properties文件
文件内容:
storePassword=123456
keyPassword=123456
keyAlias=sign
storeFile=key/sign.jks
重要事情说三遍:
没有''引号、没有//注释,
没有''引号、没有//注释,
没有''引号、没有//注释 (掉坑不解释v_v!!!)
内容对应为我上一篇文章的 storePassword=>第一次设置的密码,
keyPassword=>第二次设置的密码,keyAlias=>第一次设置的别名
(flutter打包签名文件准备),
storeFile=>前面操作复制的apk签名文件路径位置。
如下图:
3.配置项目/android/build.gradle文件:
找到andriod {xxxx} 模块
1.在前面新增:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
2.屏蔽原有buildTypes:{} :
3.buildTypes同级新增:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
signingConfigs.release 中 keystoreProperties[‘xxx’],xxx内容为前期第二步中key.properties 内对应Key字符串
此时对应文件设置已经配置完毕。
4.项目下运行 flutter build apk命令:
如果没有报错就可以成功打包apk
如果错误未知(可能是Icon有问题 我就遇到这个悲伤的问题v_v!!!)
可以尝试运行 flutter build apk –no-tree-shake-icons 命令。
如果你脸比我黑,恭喜你! 自己翻Bug去吧。
(提供两个命令:
1.flutter doctor -v 检查是否有问题。
2.flutter build apk –release -vv 仔细翻bug所在)。