多渠道先要分析需求,然后按功能划分成几个维度.举个例子,我们要打的包特供"好女人"和"坏男人",我们的需求就可以分成两个维度,"性别"和"品性"

先定义这两个维度

android{
    defaultConfig {
            flavorDimensions "性别","品性"
    }
}

  然后我们配置productFlavors,

android{
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }
}

  由于我们只需要好女人和坏男人两个版本,所以需要把好男人和坏女人过滤掉

android{
    defaultConfig{
	flavorDimensions "品性","性别"
    }
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }

    variantFilter{
        def names = it.flavors*.name
        if(names.contains("男人") && names.contains("好")){
            setIgnore(true)
        }
	if(names.contains("女人") && names.contains("坏")){
            setIgnore(true)
        }
     }
}

  然后,我们坏男人专用版本只供测试,不对外分部,也就是说不需要release版本

android{
    defaultConfig{
	flavorDimensions "品性","性别"
    }
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }

    variantFilter{
        def names = it.flavors*.name
        if(names.contains("男人") && names.contains("好")){
            setIgnore(true)
        }
	if(names.contains("女人") && names.contains("坏")){
            setIgnore(true)
        }
	if(names.contains("男人")&&names.contains("坏") && it.buildType.name=='release'){
            setIgnore(true)
        }
     }
}

  坏有部分特殊的代码,另外放置,女人也有部分代码和资源放置到其它目录

android{
    defaultConfig{
	flavorDimensions "品性","性别"
    }
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }

    variantFilter{
        def names = it.flavors*.name
        if(names.contains("男人") && names.contains("好")){
            setIgnore(true)
        }
	if(names.contains("女人") && names.contains("坏")){
            setIgnore(true)
        }
	if(names.contains("男人")&&names.contains("坏") && it.buildType.name=='release'){
            setIgnore(true)
        }
     }
    sourceSets{
	main{...}
	坏{...}
	女人{...}
    }
}

  

 

相关文章:

  • 2021-12-10
  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
  • 2021-07-29
  • 2021-11-06
  • 2021-12-26
  • 2021-12-26
猜你喜欢
  • 2022-02-22
  • 2021-08-02
  • 2021-09-17
  • 2021-03-27
  • 2021-10-26
  • 2021-05-08
  • 2021-08-20
相关资源
相似解决方案