一、创建keystore
可在Android Terminal命令行输入如下命令,输入一些信息后会生成.jks为后缀名的文件。
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
二、引用应用程序中的keystore
在android包下面创建key.properties文件,输入密码、路径等信息,如下:
storePassword=刚才创建keystore时输入的密码
keyPassword=刚才创建keystore时输入的密码
keyAlias=key
storeFile=/Users/xxx/Android_Project/Android_Demo/flutter_msb/android/my-release-key.jks
三、在gradle中配置签名
在android/app路径下的build.gradle文件下,android{}中配置
//打包配置
//key.properties为刚才创建的文件,里面存储keystort的信息,这里直接复制就可以
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
// 这里默认为debug,要改成release
signingConfig signingConfigs.release
}
}
}
四、命令行打包
在项目的根目录,执行如下命令,不报错差不多就打包成功了,之后再build/outputs/apk目录下面查看
flutter build apk
五、打包过程中遇到的问题
1.key.properties文件中storeFile一定要使用全路径名
2.debug版本正常,release版本不能访问网络
解决方案:在android/app/src/main 目录下的清单文件 增加网络请求的权限