如何为不同的风味尺寸设置signingConfig?

时间:2015-04-03 20:07:59

标签: android android-gradle

我正在试图弄清楚如何为生成的各个风味尺寸指定signingConfig。我已经看到了在使用不同风味而不是风味尺寸时如何做到这一点。

我目前正在为不同的风味尺寸成功应用不同的包名称,并认为可能使用signingConfig进行类似的操作?

> android.applicationVariants.all { variant ->
>     def flavorString = variant.getVariantData().getVariantConfiguration().getFlavorName()
>     def mergedFlavour = variant.getVariantData().getVariantConfiguration().getMergedFlavor();
> 
>     if(flavorString.equalsIgnoreCase("amazonFree")) {
>         mergedFlavour.setApplicationId("com.test.amazon.free")
>     }
>     if(flavorString.equalsIgnoreCase("amazonPro")) {
>         mergedFlavour.setApplicationId("com.test.amazon.pro")
>     }
>     if(flavorString.equalsIgnoreCase("googleFree")) {
>         mergedFlavour.setApplicationId("com.test.google.free")
>     }
>     if(flavorString.equalsIgnoreCase("googlePro")) {
>         mergedFlavour.setApplicationId("com.test.google.pro")
>     } }

我的风味设置

// Special flavor dimensions for different markets and
// versions paid and free.
flavorDimensions 'market', 'version'

productFlavors {
    amazon {
        flavorDimension 'market'
    }
    google {
        flavorDimension 'market'
    }
    // Base free version
    free {
        flavorDimension 'version'
        // Need this cause of all the ad libraries we are using :/
        defaultConfig.multiDexEnabled true

        // For now we sign all free versions with this config
        // cause we have no idea how to sign the individual flavor dimensions.
        signingConfig signingConfigs.googleFree
    }
    // Base pro version
    pro {
        flavorDimension 'version'

        // For now we sign all free versions with this config
        // cause we have no idea how to sign the individual flavor dimensions.
        signingConfig signingConfigs.googlePro
    }
}

1 个答案:

答案 0 :(得分:0)

首先,applicationId可以应用于productFlavors块本身:

productFlavors {
    amazonFree {
        applicationId 'com.test.amazon.free'
    }
    amazonPro {
        applicationId 'com.test.amazon.pro'
    }
    googleFree {
        applicationId 'com.test.google.free'
    }
    googlePro {
        applicationId 'com.test.google.pro'
    }
}

签名配置可以按照相同的方式配置:

productFlavors {
    amazonFree {
        applicationId 'com.test.amazon.free'
        signingConfig  signingConfigs.amazonFree
    }
    amazonPro {
        applicationId 'com.test.amazon.pro'
        signingConfig  signingConfigs.amazonPro
    }
    googleFree {
        applicationId 'com.test.google.free'
        signingConfig  signingConfigs.googleFree
    }
    googlePro {
        applicationId 'com.test.google.pro'
        signingConfig  signingConfigs.googlePro
    }
}