这是【Flutter 问题系列第 47 篇】,如果觉得有用的话,欢迎关注专栏。
一:问题描述
我们知道,在 Flutter 中,使用
flutter build apk --release
命令,打出来 apk 包的默认名称是 app-release.apkflutter build apk --debug
命令,打出来 apk 包的默认名称是 app-debug.apk
我们把 apk 包给运营或者后端的时候,每次还需要手动的修改包的名称,不免有点麻烦,所以我们需要一个可以自动修改打出来的 apk 包名称的功能。
二:解决方案
找到 Flutter 项目中的 android / app / build.gradle
文件,复制下面示例代码到 android 选项,
android {
... 此处省去无关代码
applicationVariants.all { variant ->
variant.outputs.all {
def version = variant.versionName // 版本号
def buildType = variant.name // 包类型,debug 还是 release
def createTime = new Date().format('yyyy_MM_dd_HH_mm_ss') // 打包时间 2021_09_25_16_45_52
outputFileName = "AllenSu_${buildType}_${version}_${createTime}.apk"
}
}
}
都有注释,大家一看就知道是什么意思了,把最后的 outputFileName 后面的内容改成自己需要的名称即可。
三:扩展
如果你想在 debug 和 release 模式生成不同的 apk 包名称,那么你可以这样做
applicationVariants.all { variant ->
variant.outputs.all {
def version = variant.versionName // 版本号
def buildType = variant.name // 包类型,debug 还是 release
def createTime = new Date().format('yyyy_MM_dd_HH_mm_ss') // 打包时间 2021_09_25_16_45_52
if (buildType == "debug") {
outputFileName = "CSDN_${buildType}_${version}_${createTime}.apk"
}
if (buildType == "release") {
outputFileName = "AllenSu_${buildType}_${version}_${createTime}.apk"
}
}
}
找到 build / app / outputs / apk
,会看到 debug 和 release 两个文件夹,生成的 apk 包会根据当前模式自动放到对应的文件夹中,结果如下图所示 说明一下,那个版本号是根据
pubspec.yaml
中的 version 的值取的。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 Google 的 Flutter 越来越火,截止 2021年9月25日 GitHub 标星已达 130K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。 无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。