gpt4 book ai didi

android - 多个变体的多个签名配置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:32 25 4
gpt4 key购买 nike

如何为不同的变体设置不同的签名配置?

例如,我们目前的构建类型 Debug/Beta/Release 有 2 种风格,免费和付费,产生 6 种变体。为了让它更容易一些,让我们忘记调试变体,只关注 freeBeta/paidBeta/freeRelease/paidRelease。

我想要的是,每个变体都使用单独的不同签名配置。

到目前为止,我能找到的唯一解决方案是将 signingConfigs 放入 buildTypes 中,以便所有 Beta 变体都具有相同的 signingConfigs:

buildTypes {
beta {
signingConfigs.beta
}
release {
signingConfigs.release
}
}

或者,使用 flavors,在这种情况下,所有免费变体都将具有相同的 signingConfigs:

productFlavors {
free {
signingConfig signingConfigs.free
applicationId 'com.example.free'
}
paid {
signingConfig signingConfigs.paid
applicationId 'com.example.paid'
}
}

有没有办法在当前的 productFlavor 闭包中做到这一点?这只能通过覆盖 android.applicationVariants.all { variant -> 并根据某些命名方案或其他一些丑陋的 hack 为每个应用程序变体手动应用 signingConfig 来解决吗?

我还找到了this answer ,但它似乎不适用于最新的构建工具;编译时出现以下错误:

FAILURE: Build failed with an exception.

  • Where: Build file '/home/dev/projects/app/build.gradle' line: 61

  • What went wrong: A problem occurred evaluating project ':app'.

    Could not find property 'free' on ProductFlavor container.

最佳答案

https://stackoverflow.com/a/32810290/3961802答案是行不通的。

    beta {
productFlavors.free.signingConfig signingConfigs.freeBeta
productFlavors.paid.signingConfig signingConfigs.paidBeta
}
release {
productFlavors.free.signingConfig signingConfigs.freeRelease
productFlavors.paid.signingConfig signingConfigs.paidRelease
}

在这种情况下,发布构建类型将覆盖所有版本。因此,freeBeta 的签名配置将为 freeRelease

目前,我知道的唯一解决方案是在单独的任务中签署所有构建变体。

signingConfigs {

bananaDebug {}
bananaBeta {}
bananaRelease {}

orangeDebug {}
orangeBeta {}
orangeRelease {}

lemonDebug {}
lemonBeta {}
lemonRelease {}
}

productFlavors {

banana {}

orange {}

lemon {}
}

buildTypes {

debug {}

beta {}

release {}
}

applicationVariants.all {
def flavorName = it.getFlavorName()
def buildTypeName = it.buildType.name
def buildVariantName = flavorName + buildTypeName.capitalize()
def currentSigningConfig = signingConfigs.getByName(buildVariantName)

it.mergedFlavor.signingConfig = currentSigningConfig
// If you want to sign debug build
buildTypes.debug.signingConfig currentSigningConfig
}

关于android - 多个变体的多个签名配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com