android 配置apk/aab 生成目录

app/build.grardle下:

task copyArtifactsToCustomLocation {
    doLast {
        def appName = "Fichero"
        def flavor = "fichero"
        def outputDirBase = new File("D:/LujiangResources/apks/Fichero")
        def buildTypes = ["debug", "release"]
        def versionName = android.productFlavors.fichero.versionName

        buildTypes.each { buildType ->
            def apkSourceDir = file("${buildDir}/outputs/apk/${flavor}/${buildType}")
            def aabSourceDir = file("${buildDir}/outputs/bundle/${flavor}${buildType.capitalize()}")
            def mappingFile = file("${buildDir}/outputs/mapping/" +
                    "${flavor}${buildType.capitalize()}/mapping.txt")

            def apkFiles = apkSourceDir.listFiles()?.findAll { it.name.endsWith(".apk") } ?: []
            def aabFiles = aabSourceDir.listFiles()?.findAll { it.name.endsWith(".aab") } ?: []

            def outputDir = new File(outputDirBase, "${versionName}")

            if (!outputDir.exists()) {
                outputDir.mkdirs()
            }

            apkFiles.each { apkFile ->
                def targetFile = new File(outputDir,
                        "${appName}-${versionName}-${buildType}-${releaseDate()}.apk")
                copy {
                    from apkFile
                    into outputDir
                    rename { targetFile.name }
                }
            }

            aabFiles.each { aabFile ->
                def targetFile = new File(outputDir,
                        "${appName}-${versionName}-${buildType}-${releaseDate()}.aab")
                copy {
                    from aabFile
                    into outputDir
                    rename { targetFile.name }
                }
            }

            copy {
                from mappingFile
                into outputDir
            }

        }
    }
}

tasks.whenTaskAdded { task ->
    if (task.name.startsWith('assemble') || task.name.startsWith('bundle')) {
        task.dependsOn rootProject.tasks.named('cleanAll')
        task.finalizedBy(copyArtifactsToCustomLocation)
    }
}

根目录build.gradle下:

task cleanAll {
    def cleanTasks = subprojects.collect {
        it.tasks.withType(org.gradle.api.tasks.Delete)
                .matching {
                    task -> task.name.endsWith('clean')
                }
    }
    dependsOn cleanTasks
}
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值