1

1.准备好keyName.jks(Apk签名文件)后才进行如下动作:

(如果不知道怎么准备可以看我上一篇文章 flutter打包签名文件准备
新建文件夹key在 项目/android/app下
将keyName.jks复制到该文件夹下
(此时我的项目中为:flu_app/android/app/key/sign.jks ,我的签名文件命名为sign.jsk,
以后内容我全部以该sign.jsk指apk签名文件)

如图:
image.png

2.在项目/android文件夹下新增 key.properties文件

文件内容:
storePassword=123456
keyPassword=123456
keyAlias=sign
storeFile=key/sign.jks
重要事情说三遍:
没有''引号、没有//注释,
没有''引号、没有//注释,
没有''引号、没有//注释 (掉坑不解释v_v!!!)
内容对应为我上一篇文章的 storePassword=>第一次设置的密码,
keyPassword=>第二次设置的密码,keyAlias=>第一次设置的别名

flutter打包签名文件准备),

storeFile=>前面操作复制的apk签名文件路径位置。

如下图:
image.png

3.配置项目/android/build.gradle文件:

找到andriod {xxxx} 模块
image.png

1.在前面新增:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

image.png

2.屏蔽原有buildTypes:{} :
image.png

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字符串
image.png
此时对应文件设置已经配置完毕。

4.项目下运行 flutter build apk命令:

如果没有报错就可以成功打包apk

image.png

如果错误未知(可能是Icon有问题 我就遇到这个悲伤的问题v_v!!!)
可以尝试运行 flutter build apk --no-tree-shake-icons 命令。

如果你脸比我黑,恭喜你! 自己翻Bug去吧。
(提供两个命令:
1.flutter doctor -v 检查是否有问题。
2.flutter build apk --release -vv 仔细翻bug所在)。


夜雨入心
42 声望0 粉丝