android - 重命名gradle apk输出文件,但有2个apk

标签 android gradle android-studio apk android-gradle-plugin

我试图基于git分支命名应用程序的APK文件,该分支通过使用jenkins传递参数来工作。但是,我最终得到了两个APK,这是不可取的,因为我执行的一项Gradle任务将APK上传到了分布式列表中。重命名此APK的全部目的是让接收它的人确切知道他们所看到的分支。

buildTypes {
    ...

    feature {
        signingConfig signingConfigs.debug

        applicationVariants.all { variant ->
            appendVersionNameVersionCode(variant, defaultConfig)
        }

    }

    ...
}

...

def appendVersionNameVersionCode(variant, defaultConfig) {
    //check if staging variant
    if(variant.name == android.buildTypes.feature.name){
        def branch = hasProperty('branch') ? branch.replaceAll('origin/', '') : "UNKNOWN"
        def file = variant.packageApplication.outputFile
        def fileName = "myapp-FEATURE-" + branch + ".apk"
        variant.packageApplication.outputFile = new File(file.parent, fileName)
    }
}

然后,调用gradle命令:
gradle assembleFeature --project-dir=/Path/To/myapp/ -Pbranch=origin/development

从中生成的两个文件是:
  • app-feature.apk
  • myapp-FEATURE-development.apk

  • 不需要文件1,我最终希望重命名该文件,而不是生成一个新文件,即文件2。

    有什么想法吗?

    最佳答案

    事实证明,gradle总是打包2个APK。一种是对齐的,一种不是对齐的。

    为了重命名对齐的apk文件,我必须添加以下内容:

        if (variant.zipAlign) {
            newName = "myapp-FEATURE-" + branch + "-ALIGNED.apk"
            variant.outputFile = new File(file.parentFile, newName);
        }
    

    关于android - 重命名gradle apk输出文件,但有2个apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26026657/

    相关文章:

    hadoop - Azkaban Gradle的构建失败TestTimedOutException

    android - 为什么 "Decompile kotlin to java"在 Android Studio 3.1.2 中显示为灰色

    android - DexException 在 Android 中定义了多个 dex 文件

    android - 日志记录在 Android Studio 中有什么作用?

    android - 无法获得 NotificationListenerService 的 BIND_NOTIFICATION_LISTENER_SERVICE 权限

    php - 使用 csrf token 从 android 应用程序访问 laravel 应用程序

    java - 如何使用 retrofit2 动态设置超时?

    android - 请求 SYSTEM_ALERT_WINDOW 权限后返回应用

    java - 将 android studio 升级到 Android Studio Chipmunk 后 | 2021.2.1 得到这个 gradle 问题

    kotlin - 包含 5.8.13 版本的 Javers 导致在构建时出现奇怪的 `9730` 错误消息