【问题标题】:How to disable default gradle buildType suffix (-release, -debug)如何禁用默认的 gradle buildType 后缀(-release,-debug)
【发布时间】:2023-03-18 11:14:02
【问题描述】:

我迁移了第 3 方工具的 gradle.build 配置,因此它使用 android gradle 插件 3.5.3 和 gradle 5.4.1。

构建进行得很顺利,但是当我尝试制作 .aab 存档时,由于工具链期望输出 .aab 文件命名为 MyApplicationId.aab,但新的 gradle 默认输出 MyApplicationId- release.aab,带有不存在的 buildType 后缀。

我试图寻找解决方案,但有关产品风味的文档大多是关于添加后缀的。如何防止添加默认的“-release”后缀?工具链的 gradle 配置文件中没有任何产品风味块。

【问题讨论】:

    标签: android-gradle-plugin build.gradle android-productflavors


    【解决方案1】:

    在阅读其他问题和答案后,我意识到我必须创建自定义任务: How to change the generated filename for App Bundles with Gradle?

    重命名 applicationVariants.outputs 的 outputFileName 不起作用,因为它们用于 .apks。

    我使用的是 Gradle 5.4.1,所以我的复制任务语法参考是 here

    我不太明白“app.aab”名称字符串的来源,所以我定义了自己的 aabFile 名称字符串来匹配我的工具链的输出。

    我不关心源文件,所以它不会被另一个删除任务删除。

    此外,我的工具链似乎正在删除由“${}”包围的未知变量,因此我不得不通过省略括号并使用连接进行正确分隔来解决 ${buildDir} 和 ${flavor}。

        tasks.whenTaskAdded { task ->
        if (task.name.startsWith("bundle")) { // e.g: buildRelease
            def renameTaskName = "rename${task.name.capitalize()}Aab" // renameBundleReleaseAab
            def flavorSuffix = task.name.substring("bundle".length()).uncapitalize() // "release"
            tasks.create(renameTaskName, Copy) {
                def path = "$buildDir/outputs/bundle/" + "$flavorSuffix/"
                def aabFile = "${android.defaultConfig.applicationId}-" + "$flavorSuffix" + ".aab"
                from(path) {
                    include aabFile
                    rename aabFile, "${android.defaultConfig.applicationId}.aab"
                }
                into path
            }
    
            task.finalizedBy(renameTaskName)
        }
    }
    

    正如原始答案所说:这将添加不必要的任务,但这些任务将被跳过,因为它们与任何文件夹都不匹配。 例如

    任务:app:renameBundleReleaseResourcesAab NO-SOURCE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 2016-05-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多