问题:
在Android端,当minSdkVersion为24经flutter build apk打包出来的apk在大部分应用市场上都存在签名问题,无法正常上传apk。
处理:
通过Android Studio打开Android目录,通过传统签名打包方式: Build->Generate Signed Bundle/APK->选择APK->填写签名信息->Signature Versions只勾选V1
总结:
- 如果要支持Android 7.0以下版本,尽量同时选择两种签名方式,但如果遇到签名问题,可以只使用v1签名方案;
- 如果需要对签名后的信息做处理修改,则使用v1签名方案。
flutter build apk
是默认选择v2模式,要仅用传统方案签署,打开build.gradle
文件,然后将v2SigningEnabled false
添加到您的版本签名配置中:
android {
...
signingConfigs {
release {
...
// 加入这句
v2SigningEnabled false
}
}
}
复制代码
扩展:
Android打包签名方式
- v1:对jar进行签名(在归档文件中解压缩文件内容);
- v2:对整个apk进行签名(在整个apk文件的二进制内容上计算和验证),Android7.0引入;
- v3:在原来v2的基础上增加了APK密钥轮转,使应用能够在APK更新过程中更改其签名密钥,Android9.0引入;
- v4:通过 APK 签名方案 v4 支持与流式传输兼容的签名方案,Android11引入。
APK验证流程:
欢迎指正交流!