部分应用市场支持分别上传 armeabi 和 arm64 的apk,但是有时会被告知32位和64位的版本号或版本标识不一致导致如无法上传审核。
出现的原因是当使用 带有 --split-per-abi 进行打包时:
flutter build apk --split-per-abi
命令会将每个架构的apk分别打出,那么在flutter框架中会自动为每个架构版本的 VersionCode进行修改,修改成如下:
arm64 -> VersionCode:1001,
x86_64 -> VersionCode: 1002 ,
因此我们修改flutter的此种打包逻辑来直接解决此问题:
1. 到flutter引擎根目录 的 /packages/flutter_tools/gradle/flutter.gradle
2. 找到的876 行附近可以看到:
abiVersionCode * 1000 + variant.versionCode
将其改为统一即可,例如: 1000 + variant.versionCode
如果flutter apk 所有架构打包到一个apk 不会有此问题的:
例如:flutter build apk