Flutter下Android打包
一.用指令生成签名文件 key.jks
在Terminal里执行下列命令:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注: 1.保持文件私密; 不要将它加入到公共源代码控制中。
2.此操作生成的签名是*.jks格式
二. 创建一个key.properties文件
创建一个名为/android/key.properties的文件,其中包含对**库的引用:
storePassword=<创建keystore时的storePassword>,如:123456
keyPassword=123456<创建keystore时的keyPassword>,如:123456
keyAlias=key
storeFile=../key.jks 例如: /Users/ykyjhuangl/Desktop/myflutterdemo/key.jks(我是mac路径)
文件内容和层级如图所示:
三.在gradle中配置签名
通过编辑/android/app/build.gradle文件为您的应用配置签名
替换:
android {
为:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
如图所示:
替换:
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 {
signingConfig signingConfigs.release
}
}
如图所示:
四.生成apk
直接在Terminal中运行命令flutter build apk
打包好的发布APK位于/build/app/outputs/apk/app-release.apk。
五.如果flutter项目下不显示build文件(我当时就是apk打包成功就是找不到build文件)
如上图钩上红色选项就可以了。