AndroidStudio 2024.2.2发布apk时候备份mapping文件kts版本
背景
在打包release的apk之后需要保留一份mapping文件。如果在混淆后的app发生崩溃,堆栈都是混淆情况下分析问题就很艰难。备份mapping是有必要的。
环境
AndroidStudio 2024.2.2
kts版本
插件版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zipplugins {id 'com.android.application' version '8.8.2' apply falseid 'com.android.library' version '8.8.2' apply falseid 'org.jetbrains.kotlin.android' version '2.1.0' apply false
}
备份mapping的代码
在主模块的build.gradel.kts中
android {...applicationVariants.all {if (buildType.name == "release") {// 拦截 assembleRelease 任务完成之后执行assembleProvider.get().doLast {val mappingFile = mappingFileval versionName = versionName ?: "unknown"val outputDir = File(rootProject.projectDir, "mapping-backup/${name}-$versionName")outputDir.mkdirs()mappingFile?.let {val targetFile = File(outputDir, "mapping.txt")it.copyTo(targetFile, overwrite = true)println("✅ Copied mapping.txt to: ${targetFile.absolutePath}")} ?: run {println("⚠️ No mapping file found for variant: $name")}}}}...
}
这个时候,构建assembleRelease任务。
文件位置项目根目录下: