前情提要
透过指令产生Flutter App的Apk时,发现产生的Apk有点肥(Apk Size约23MB)
flutter build apk
后来改用以下指令产Apk,大小可以缩小很多(Apk Size约9MB),
但又发现新问题,产生的APP版号跟pubspec.yaml设定的竟然不同
flutter build apk --split-per-abi
重现问题
如下图pubspec.yaml设定的版号为1
透过工具aapt(Android Asset Packaging Tool)检查版号
aapt dump badging mypath/myApkName.apk
app-armeabi-v7a-release.apk版号却是1001
app-arm64-v8a-release.apk是2001
app-x86_64-release.apk是4001
原因与解法
Google下
发现Flutter Github Issue上有讨论#39871、#49544
大致上来说这是预设行为,因Google Play 商店不允许同一个应用程式使用多个全都具有相同版本资讯的APK
解法: 改成透过App Bundle部属APP
但如果想产Apk档但又怕产的Apk太肥怎么办?
参考解答
依需要将build apk指令改为下列三个
※若要上架到Google Play商店要记得3个Apk需设为不同的版号
app-arm64-v8a-release.apk
flutter build apk --target-platform=android-arm64
app-armeabi-v7a-release.apk
flutter build apk --target-platform=android-arm
app-x86_64-release.apk
flutter build apk --target-platform=android-x64
Flutter新手,有误还请各位前辈不吝指教