Android Studio:如何为选定的 buildType 一次为所有 productFlavors 生成多个 APK 或签名 APK?

Android Studio: How to generate multiple APKs or signed APKs for all productFlavors at once for a selected buildType?

我想制作所有 apk 文件以发布到所有商店,所以我必须为每个 apk 使用 productFlavor

build.gradle

buildTypes {
        release {
           ...
        }
        debug {
           ...
        }
    }

    productFlavors {
        red {
           ...
        }
        yellow {
           ...
        }
    }

输出

appname_red_debug.apk
appname_red_release.apk
appname_yellow_debug.apk
appname_yellow_release.apk

我知道上面的代码可以改变apk的文件名。但是当我生成签名的apk时,我只能选择一个productFlavor。这样,结果仅特定于 productFlavor

已更新

如何使用 assembleRelease 在命令行上一次制作所有 apk 文件?有谁知道这件事吗?

在 selecting 构建类型后生成签名的 apk 时,您总是可以从列表中 select 多种风格。它将为给定构建类型的所有 selected 风格生成 apk。我已经做过好几次了。

怎么样,你问? Select 一种口味然后按 Ctrl + A 到 select 所有口味或 按 Ctrl 和 select 多种口味

这是我现在做的截图(屏蔽了口味名称):

更新: 我进一步探索并注意到将鼠标拖动到select多个项目在这里不起作用 与其他工具一样。这就是所有混淆的原因,我认为 Google 应该启用 selection,否则许多用户可能仍未使用该功能。

如果您想使用命令行,您可以使用以下命令之一:

 All buildVariants
 - ./gradlew assemble

 All flavors for a buildType
 - ./gradlew assembleDebug
 - ./gradlew assembleRelase

 All buildTypes for a flavor
 - ./gradlew assembleRed
 - ./gradlew assembleYellow

 Only a buildVariant
- ./gradlew assembleRedDebug
- ./gradlew assembleRedRelease    
- ./gradlew assembleYellowDebug
- ./gradlew assembleYellowRelease

您也可以使用

更改 apk 名称
project.ext.set("archivesBaseName", "....");

例如

project.ext.set("archivesBaseName", "myApp."+ defaultConfig.versionName);