kotlin build.gradle.kts下修改APK的输出名称

kotlin build.gradle.kts下修改APK的输出名称

直接贴代码:

kotlin 复制代码
android.applicationVariants.all {
        outputs.all {
            if (this is com.android.build.gradle.internal.api.ApkVariantOutputImpl) {
                val config = project.android.defaultConfig
                val versionName = config.versionName
                val formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmm")
                val createTime = LocalDateTime.now().format(formatter)
                val parts = this.name.split("-")
                val flavorName = parts.getOrNull(0) ?: ""
                val buildType = parts.getOrNull(1) ?: ""
                this.outputFileName ="${flavorName}_${buildType}_v${versionName}_${createTime}.apk"
            }
        }
    }

字段解释:

kotlin 复制代码
versionName:版本名称: v1.0.1

this.name:APP的默认名称  oppo-debug

parts:把默认名称分割后的数据 

0位的flavorName是渠道名称:oppo

1位的buildType是版本:debug或者release

createTime:按照yyyyMMdd-HHmm格式的时间 20251112-1638

放在文件中的

kotlin 复制代码
android {
defaultConfig{
}
//放在这个位置
android.applicationVariants.all{
......
}
}

打包后输出的格式为

kotlin 复制代码
oppo_debug_v1.0.1_20251112-1638.apk

以上。

相关推荐
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android
_小马快跑_1 天前
Kotlin | 从SparseArray、ArrayMap的set操作符看类型检查的不同
android
_小马快跑_1 天前
Android | 为什么有了ArrayMap还要再设计SparseArray?
android
_小马快跑_1 天前
Android TextView图标对齐优化:使用LayerList精准控制drawable位置
android
_小马快跑_1 天前
Kotlin协程并发控制:多线程环境下的顺序执行
android