通过配置Flavors和自定义buildConfigField进行多个服务器地址打包
productFlavors{ } 是配置多渠道打包的.
1).productFlavors{ } 与 buildTypes{ }里面的配置是多对多的关系。
2).productFlavors{ } 其实是defaultConfig{ }的子集
defaultConfig {}中的属性在productFlavors{}中都可以单独设置,若重复会以productFlavors{}中的属性为最终属性.
a.可以对单独的productFlavors{ } 设置applicationId进而达到多个相同应用安装到同一台设备(现applicationId为唯一标识,区别于packageName)
b.对单独的productFlavors{ }进行一些单独的配置或者操作
eg:单独对company的flavors进行了applicationId、minSdk、和JUnit测试限制操作,这样打出的包只会对company的有影响,其他的flavors无影响
-------------->
defaultConfig的相关设置属性可直接在ProjectStructure中查看并设置
buildConfigField自定义配置
buildConfigField是用于解决Beta版本服务和Release版本服务地址不同
或者一些Log打印需求控制的.
形式:buildConfigField "boolean", "LOG_DEBUG", "true"
三个字段分别表示为: 自定义字段类型 自定义字段名 自定义字段值
将buildConfigField写入到Flavors中在打包编译时就会单独的编入进去(PS.请注意单双引号的使用,对于链接需要额外的单引号buildConfigField的放置位置很灵活,如果Flavors的buildConfigField是一样的话,直接放入到debug{}和release{}中即可.)
该步骤完成后同步下Gradle就可以在module下面的BuildConfig中每个Flavors下面看到自定义的属性.
eg:查看时请注意路径,另外如果创建了多个Flavors时同步后可能只出现了第一个Flavors的文件夹.手动针对其他Flavors编译即可.
路径查看图 Flavors对应的自定义属性查看
配置并编译完成后即可进行调用进行IP设置写入.(BuildConfig.自定义的属性名)