Flutter 修改生成的 APK 名称

一、问题场景

我们在开发完 Android 项目后会进行打包操作,如果不进行任何配置的话,生成的包名会是 app-release.apk。我们一般都会配置成我们想要输出的名称,但是 Flutter 怎么配置呢?

二、解决思路

1、如 Android 原生一样配置

applicationVariants.all { variant ->
    variant.outputs.each{ output ->
        output.outputFile = new File(output.outputFile.parent,output.outputFile.name.replace(".apk","-" + defaultConfig.versionName + ".apk" ))
    }
}

配置完后执行命令:

flutter build apk

...

Gradle build failed to produce an .apk file. It's likely that this file was
generated under /Users/haoyd/proSpace/flutterSpace/driver/build, but the
tool couldn't find it.

报错 !

2、设置 archivesBaseName

defaultConfig {
    setProperty("archivesBaseName", "driver-v" + flutterVersionName)
}

配置完后执行命令:

flutter build apk

...

Running Gradle task 'assembleRelease'...                                
Removed unused resources: Binary resource data reduced from 728KB to 724KB: Removed 0%
Running Gradle task 'assembleRelease'...                                       
Running Gradle task 'assembleRelease'... Done                     160.6s (!)

Gradle build failed to produce an .apk file. It's likely that this file was
generated under /Users/haoyd/proSpace/flutterSpace/driver/build, but the
tool couldn't find it.

虽然这种方法可以生成指定的 APK 名,但还是会报 Gradle build failed。

三、总结

虽然用第 2 种方法成功生成了 APK 包,但是有错误信息的包也不敢轻易使用,在 github 上也调研了一些人提的 issue,总得来说这个算是 Flutter 的一个 bug(要么不能修改文件名,如果修改完文件名后 tool 就找不到文件了)。

目前 Master 分支可能已经修复这个问题了,但是还没有出现在稳定版中,只能先手动修改文件名了。

如果什么时候大家发现这个问题已经修复,或者有什么其它方法可以解决问题,可以在评论中贴出,我会在文章中做内容更新 !

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章