我正在试图弄清楚如何为生成的各个风味尺寸指定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 } }
答案 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
}
}