How to set different applicationId for each flavor combination using flavorDimensions?

前端 未结 3 994
栀梦
栀梦 2020-11-30 02:10

I have and old android app that I am trying to migrate to the android gradle build system. The app is currently built in a multi project setup and published as four differen

3条回答
  •  野性不改
    2020-11-30 02:39

    The solution proposed by Fredrik stopped working after upgrading Android Studio to 1.0.2 (and gradle plugin to 1.0.0) so I had to add following changes, current as of gradle plugin 1.3.1:

    flavorDimensions "price", "dataset"
    
    productFlavors {
        free { dimension "price" }
        paid { dimension "price" }
        dataset1 { dimension "dataset" }
        dataset2 { dimension "dataset" }
    }
    
    android.applicationVariants.all { variant ->
        def mergedFlavor = variant.mergedFlavor
        switch (variant.flavorName) {
            case "freeDataset1":
                mergedFlavor.setApplicationId("com.beansys.freeappdataset1")
                break
            case "freeDataset2":
                mergedFlavor.setApplicationId("com.beansys.freedataset2")
                break
            case "paidDataset1":
                mergedFlavor.setApplicationId("com.beansys.dataset1paid")
                break
            case "paidDataset2":
                mergedFlavor.setApplicationId("com.beansys.mypaiddataset2")
                break
        }
    }
    

提交回复
热议问题