网上文章很多,但是对于小白来说各种术语太多,有点蒙。找了个热心的前辈,给我解决了问题
第一步:签名
方法一
cd project/android/app
keytool -genkey -v -keystore parking.jks -keyalg RSA -keysize 2048 -validity 10000 -alias parking
方法二
1.得到版本号和路径
/usr/libexec/java_home -V
2.进入这个路径
cd
3.执行此命令生成
keytool -genkey -v -keystore parking.jks -keyalg RSA -keysize 2048 -validity 10000 -alias parking
//执行上面的命令可能会报错,因为没有权限,我换个路径解决了
-keystore /Users/cqct/Documents/tmp/parking.jks
4.查看存储时要注意路径
keytool -v -list -keystore parking.jks -alias parking -keypass 111111 -storepass 111111
keytool -v -list -keystore maas.jks -alias maas -keypass 345678 -storepass 345678 //这样会报错
keytool -v -list -keystore /Users/fly/Documents/project/flutter/maas/android/app/maas.jks -alias maas -keypass 345678 -storepass 345678 //注意这里的路径
5.导出
keytool -export -rfc -alias parking -file upload_certificate.pem -keystore parking.jks
6.过度到p12
keytool -importkeystore -srckeystore /xxxx/maas.jks -destkeystore /xxxxx/maas.jks -deststoretype pkcs12 //
7.生成p12
参考:keytool -importkeystore -srckeystore D:\key.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore key.p12
实际:keytool -importkeystore -srckeystore /Users/fly/Documents/project/flutter/maas/android/app/maas.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore key.p12
8.p12 转 keystore
keytool -v -importkeystore -srckeystore /Users/fly/key.p12 -srcstoretype PKCS12 -destkeystore key.keystore -deststoretype JKS
签名结束 直接把签名文件放到 flutter_parking/android/app/。
第二步:配置
1.flutter_parking/android/app/build.gradle
signingConfigs {
release {
keyAlias 'parking'
keyPassword '111111'
storeFile file('./parking.jks')
storePassword '111111'
}
debug {
keyAlias 'parking'
keyPassword '111111'
storeFile file('./parking.jks')
storePassword '111111'
}
}
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
//混淆
minifyEnabled false
useProguard true
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
//设置只支持armeabi-v7a 平台,与签名无关,可以自己配置
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
}
}
debug {
signingConfig signingConfigs.debug
}
}
2.1>修改app显示的名字 /flutter_parking/android/app/src/main/AndroidManifest.xml
<application
android:label="应用名字">
.2>修改app的logo--/flutter_parking/android/app/src/main/res/
3.打包 工具终端运行 flutter build apk
4.显示包的位置 工具终端运行 open build/app/outputs/flutter-apk/
第三步 获取 SHA1
keytool -list -v -keystore flutter_parking/android/app/parking.jks