flutter配置Android gradle kts 8.0 的打包名称

https://blog.csdn.net/zxj2589/article/details/139480782

头部导包

Kotlin 复制代码
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.Date
复制代码
android {} 里面加
Kotlin 复制代码
android.buildTypes.forEach {
            buildType ->
        // 拿到对应的任务类型名称,比如是release或debug,后面需要用它去拼接成对应的任务名称
        val typeName = buildType.name
        // 获取版本号versionName写到apk的民称中
        val versionName = android.defaultConfig.versionName
        // 往apk的名称中加入时间
        val date = SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.US).format(Date())
        // 按名称遍历productFlavors然后创建两个任务分别打release包和debug包
        android.productFlavors.map { it.name }
            .ifEmpty { listOf("") }
            .forEach {
                    flavorName->
                // 将获取到的名称首字母变为大写,比如:release变为Release
                val combineName = "${flavorName.capitalize()}${typeName.capitalize()}"
                // 为我们的任务命名:比如叫packRelease
                val taskName = "pack$combineName"
                // 找到打包的任务,比如release就是assembleRelease任务
                val originName = "assemble$combineName"
                // 创建一个任务专门做我们的自定义打包任务
                project.task(taskName){
                    // 为任务分组
                    group = "Pack apk"
                    // 执行我们的任务之前会先执行的任务,比如,打release包时会先执行assembleRelease任务
                    dependsOn(originName)
                    // 执行完任务后,我们将得到的APK 重命名并输出到根目录下的apks文件夹下
                    doLast{
                        copy{
                            from(File(project.buildDir,"outputs/apk/$typeName"))
                            into(File(rootDir,"apks"))
                            rename{"AppPackDemo-V-$versionName-$date.apk"}
                            include("*.apk")
                        }
                    }
                }
            }
    }
相关推荐
西西学代码13 分钟前
Flutter---常见的ICON图标
flutter
川石课堂软件测试22 分钟前
Android和iOS APP平台测试的区别
android·数据库·ios·oracle·单元测试·测试用例·cocoa
花卷HJ39 分钟前
Android 通用 BaseDialog 实现:支持 ViewBinding + 全屏布局 + 加载弹窗
android
LawrenceLan1 小时前
Flutter 零基础入门(十):final、const 与不可变数据
开发语言·flutter·dart
生产队队长1 小时前
Linux:awk进行行列转换操作
android·linux·运维
叶羽西1 小时前
Android15 EVS HAL中使用Camera HAL Provider接口
android
2501_915918411 小时前
除了 Perfdog,如何在 Windows 环境中完成 iOS App 的性能测试工作
android·ios·小程序·https·uni-app·iphone·webview
泓博1 小时前
Android状态栏文字图标设置失效
android·composer
行者961 小时前
Flutter跨平台开发:安全检测组件适配OpenHarmony
flutter·harmonyos·鸿蒙
小雨下雨的雨2 小时前
Flutter 框架跨平台鸿蒙开发 —— GridView 控件之多维网格美学
flutter·华为·交互·harmonyos·鸿蒙系统