Android gradlew.bat assembleRelease 选择起始包

Android gradlew.bat assembleRelease choose starting package

我有一个 Android Studio 应用程序,现在有将近 100 个 "productFlavors" 与之关联,当然都在 build.gradle 中定义。我想从命令行构建它们,因为在 IDE 中一次构建它们将是一场噩梦。当我 运行 在使用命令行 gradlew.bat assembleRelease 构建它们的过程中出错时,我的问题就出现了。一旦我修复了错误,我想在失败点开始构建(构建中可能有 50 种风格)而不是在开始时。有没有办法用 Gradle 做到这一点?对于 Ant,我被迫将它们注释掉,我希望 Gradle 有更好的方法,因为文件中的结构要复杂得多。

更新

我最终选择了一个包含 Gradle 和 Ant 的解决方案(令人讨厌,但它有效)。基本上,我想构建我的 100 种白标口味,带有版本前缀,然后将其复制到没有版本的交付 APK。为此,我的 ANT 脚本如下所示:

#!/bin/sh
DEPLOY_DIR=C:/AndroidBuilds/MyCompany.Build
VERSION="63"

NAME="WhiteLabel1"
DEPLOY_FOLDER="whitelabel1"
APK_NAME=$NAME$".apk"
gradlew assemble$NAME
cp $DEPLOY_DIR/$DEPLOY_FOLDER/$VERSION"-"$APK_NAME $DEPLOY_DIR/$DEPLOY_FOLDER/$APK_NAME

NAME="WhiteLabel2"
DEPLOY_FOLDER="whitelabel2"
APK_NAME=$NAME$".apk"
gradlew assemble$NAME
cp $DEPLOY_DIR/$DEPLOY_FOLDER/$VERSION"-"$APK_NAME $DEPLOY_DIR/$DEPLOY_FOLDER/$APK_NAME

这会导致生成 2 个 APK,63-WhiteLabel1.APK63-WhiteLabel2.APK,然后将它们复制到各自的部署目录中作为 WhiteLabel1.APKWhiteLabel2.APK

我想如果你够聪明的话,你可以将参数设为 运行 只是你想要的参数,但是 Android Studio 在这方面做得相当不错。

你不能专门这样做,但你可以解决这个问题并使用一些脚本魔术来修复它。

如果您有一个名为 Release 的构建类型和一个名为 Iron 的风格,您可以 运行:

gradlew.bat assembleIronRelease

因此您可以编写一个脚本,该脚本将 运行 通过所有类型的循环,如果它失败了,它会告诉您哪个失败了。然后您可以修复错误,并再次启动脚本,告诉它从 X 风格开始(不过您必须编写逻辑来告诉它从哪里开始)。