在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引入。