关于flutter build apk打包的apk在应用市场上无法上传的签名问题

问题:

在Android端,当minSdkVersion为24经flutter build apk打包出来的apk在大部分应用市场上都存在签名问题,无法正常上传apk。

处理:

通过Android Studio打开Android目录,通过传统签名打包方式: Build->Generate Signed Bundle/APK->选择APK->填写签名信息->Signature Versions只勾选V1

总结:

  1. 如果要支持Android 7.0以下版本,尽量同时选择两种签名方式,但如果遇到签名问题,可以只使用v1签名方案;
  2. 如果需要对签名后的信息做处理修改,则使用v1签名方案。

flutter build apk是默认选择v2模式,要仅用传统方案签署,打开build.gradle文件,然后将v2SigningEnabled false添加到您的版本签名配置中:

android {
    ...
    signingConfigs {
      release {
        ...
        // 加入这句
        v2SigningEnabled false
      }
    }
  }
复制代码

扩展:

Android打包签名方式

  1. v1:对jar进行签名(在归档文件中解压缩文件内容);
  2. v2:对整个apk进行签名(在整个apk文件的二进制内容上计算和验证),Android7.0引入;
  3. v3:在原来v2的基础上增加了APK密钥轮转,使应用能够在APK更新过程中更改其签名密钥,Android9.0引入;
  4. v4:通过 APK 签名方案 v4 支持与流式传输兼容的签名方案,Android11引入。

APK验证流程:

apk-validation-process-v4.png 欢迎指正交流!

猜你喜欢

转载自juejin.im/post/7074986392752750600