1.首选打包apk包需要有签名文件,
eclipse的签名文件是以.ketstore为后缀的文件;Android Studio是以.jks为后缀的文件。
本文使用的是Android Studio自带的debug.keystore密钥库。
Mac端生成签名文件,在终端执行
//生成sign.jks
keytool -genkey -v -keystore ~/sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign
-----------------------------生成文件路径--------------------------------------------------别名--
//查看证书SHA1
keytool -list -v -keystore sign.jks -alias sign -storepass android -keypass 123456
---------------------------文件路径----------别名-----------秘钥库密码---------sign文件密码--
//-keystore sign.jks
//-alias sign
//-storepass android
//-keypass 123456
完整的生成 代码
keytool -genkeypair -alias sign -keyAlg RSA -keysize 2048 -dname "C=CN, O=ABC, OU=XYZ, CN=MY_SERVER" -validity 10000 -keypass 123456 -keystore ~/sign.jks -storepass android
终端执行过程:
查看签名文件
二、Android Studio文件配置
1、导入sign.jks
在Flutter工程中/android/app/目录下导入sign.jks
2、创建key.properties
在Flutter工程中/android/key.properties创建该文件。其中key.properties为创建的文件 。里面内容如下:
storePassword=android
keyPassword=123456
keyAlias=sign
storeFile=sign.jks
密码解释:
storeFile 签名文字
keyAlias 文件的别名
storepass android 这个是在创建签名的时候输入的 秘钥库秘钥
keyPassword 123456 为设置的秘钥串
3、配置/android/app/build.gradle文件
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
signingConfigs {
release {
keyAlias 'sign'
keyPassword 'android'
storeFile file('key/sign.jks')
storePassword '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.release
}
}
}
修改这三个地方
4.进入到flutter的工程目录下,执行
flutter build apk
如果出现如下问题:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:validateSigningRelease'.
> Keystore file '/xxx/basedemo/android/app/sign.jks' not found for signing config 'release'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
查看sign.jks文件是否在/android/app/目录下
参考地址:https://www.jianshu.com/p/fabcfd621e01
参考地址:https://blog.csdn.net/yidichaxiang/article/details/81741622