Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio:如何为选定的构建类型一次为所有productFlavors生成多个APK或签名APK?_Android_Android Gradle Plugin_Apk_Build.gradle_Android Productflavors - Fatal编程技术网

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

Android Studio:如何为选定的构建类型一次为所有productFlavors生成多个APK或签名APK?,android,android-gradle-plugin,apk,build.gradle,android-productflavors,Android,Android Gradle Plugin,Apk,Build.gradle,Android Productflavors,我想将所有apk文件发布到所有商店,因此我必须为每个apk使用productFlavor: build.gradle buildTypes { release { ... } debug { ... } } productFlavors { red { ... } yellow {

我想将所有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文件同时在线?有人知道这一点吗?

在选择构建类型后生成签名apk时,您始终可以从列表中选择多种风格。它将为给定构建类型的所有选定样式生成APK。我已经做过好几次了

如何选择?选择一种口味,然后按Ctrl+A选择所有口味,或者按Ctrl键,然后根据需要选择多种口味

下面是我现在做这件事的截图(掩盖了味道名称):


更新:我进行了更多的探索,并注意到拖动鼠标选择多个项目与其他工具不同。这就是所有混乱的原因,我认为谷歌应该以这种方式启用选择功能,否则该功能可能会被许多用户闲置。

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

 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);

您应该使用gradle包装器来简化组装并同时获得所有apk。等等!可以让我试试,不需要这么复杂的东西。Android Studio默认支持它。如果可以看到列表,则可以选择它。检查我下面的答案。真是太棒了~:D我从没想过我可以选择很多选项。我会非常感谢你,但我想知道它在推荐线上是如何工作的。我也从未尝试过,对不起,但现在我很想知道。如果你发现了,请在这里留言。如果我找到了,我也会。这就是我想要的,我只是找到了另一种方式,但我喜欢它。非常感谢你!很好,但是签名配置是否需要预配置才能生成签名的APK?只是好奇,我从来没有tried@Virus您可以在build.gradle脚本中配置签名配置。例如,check或我也这样做了,从这个窗口生成了多个APK,当上传到play store时,它会说它是用不同的证书签名的。我所有的风格都有不同的密钥库文件。你能帮忙吗?