gradle配置多渠道(動態設定App名稱,應用圖標等)

作者:燕歆波
導讀:在gradle中配置動態設定App名稱,應用圖標等,爲了解決重複替換圖標,app名稱多次打包的問題

gradle提供了productFlavors節點針對不同的版本做不同的配置:
比如有【遊戲一】,【遊戲二】,【遊戲三】需要打包:

defaultConfig {
        applicationId "com.xin.wallepackage"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    
productFlavors{
        fruit{
            applicationId "com.xinbo.fruit"
            manifestPlaceholders = [app_name:"水果A",icon:"@mipmap/ic_fruit"]
            signingConfig signingConfigs.xinbo
        }
        hais{
            applicationId "com.xinbo.hais"
            manifestPlaceholders = [app_name:"haisA",icon:"@mipmap/ic_black"]
            signingConfig signingConfigs.xinbo
        }
        auncher{
            applicationId "com.xinbo.auncher"
            manifestPlaceholders = [app_name:"auncher",icon:"@mipmap/ic_launcher"]
            signingConfig signingConfigs.xinbo
        }
    }

在每個分之下都配置了applicationId屬性,這樣打包之後避免了覆蓋安裝的問題,然後對於不同的app,圖標和名稱也要求不一樣,所以在分支下都配置了manifestPlaceholders屬性,裏面配置了app_name和icon字段,配置好後,需要在minifest中配置meta-data:
在這裏插入圖片描述這樣的配置在使用assembleRelease打包時,會出現異常
在這裏插入圖片描述解決這個問題需要配置flavorDimensions屬性:
可以直接配置在productFlavors節點的上面,然後在productFlavors下面每個分支下面配置dimension屬性:
在這裏插入圖片描述如果存在多個flavorDimensions,會出現問題,這裏也牽扯到多維度的問題,可以自行了解;
如果需要統一一個flavorDimensions,也可以把flavorDimensions配置到defaultConfig下面,這樣productFlavors下面的分支就不用都寫上dimension屬性了:

在這裏插入圖片描述然後productFlvors下面分支的dimension的屬性可以刪除了,
最後,點擊studio右上角的Gradle按鈕:
在這裏插入圖片描述然後雙擊assembleRelease,成功後在app/build/outputs下面查看打的包。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章