android为每个buildTypes的productFlavors设置了signedConfigs

时间:2018-05-02 16:49:01

标签: android android-studio gradle

我目前的配置如下:

signingConfigs {
        alpha_beta {
            storeFile xx
            storePassword xx
            keyAlias xx
            keyPassword xx
        }
        release1 {
            storeFile xx
            storePassword xx
            keyAlias xx
            keyPassword xx
        }
        release2 {
            storeFile xx
            storePassword xx
            keyAlias xx
            keyPassword xx
        }
}

有不同的口味:

productFlavors {
    flavorWhite {
    }

    flavorBlack {
    }
}

和不同的buildTypes:

buildTypes {
    debug {
        ...
        signingConfig signingConfigs.alpha_beta
    }

    release {
        ...
    }
}

我的目标是,对于 RELEASE 版本,我想与 signingConfigs.release1 <签署 flavorWhite / em> flavorBlack signingConfigs.release2

我尝试了我能想到的一切以及我能在网上找到的任何东西,包括 https://groups.google.com/forum/#!topic/adt-dev/3L8I1K_mjuoMultiple signingConfigs for multiple variants和其他许多人。

我遗失了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

我不相信你可以做你所要求的。我的建议是这样做:

buildTypes {
    debug {
        ...
        signingConfig signingConfigs.alpha_beta
    }

    release1 {
        ...
        signingConfig signingConfigs.release1
    }

    release2 {
        ...
        signingConfig signingConfigs.release2
    }
}

这将为您提供以下构建变体:

  • flavorWhiteDebug
  • flavorWhiteRelease1
  • flavorWhiteRelease2
  • flavorBlackDebug
  • flavorBlackRelease1
  • flavorBlackRelease2

然后,您可以添加variantFilter来摆脱您不想要的变体(例如flavorWhiteRelease2flavorBlackRelease1

variantFilter { variant ->
    if (variant.flavors*.name.contains("flavorWhite")) {
        setIgnore(variant.buildType.name == "release2")
    } else if (variant.flavors*.name.contains("flavorBlack")) {
        setIgnore(variant.buildType.name == "release1")
    }
}

有了这个,您的构建变体将是:

  • flavorWhiteDebug
  • flavorWhiteRelease1
  • flavorBlackDebug
  • flavorBlackRelease2