Android Studio 多渠道打包

2018-11-07  本文已影响0人  And__

为了规范化发版逻辑,Boss对不同版本进行了细分,分了3个类型,内测T版,公测GM版,正式OFFICIAL版,为各个渠道单独配置appName,icon,applicationId,接口地址,之前的渠道做的不清晰,于是参照https://blog.csdn.net/z2wenfa/article/details/55684298 的文章 根据自己项目的需求做了一下分类。贴了一部分代码。部分涉及到公司的内容,以***替代


    productFlavors {

        ***_test {
            def  PRODUCTION_MODEL = false
            resValue "string", "app_name", "***"
            applicationId = "***"
            buildConfigField("String", "API_URL", "***")
             manifestPlaceholders = [ENVIRONMENT: "***_t",
                                    app_icon   : "@mipmap/ic_launcher_t"]
            dimension "App"

        }
        ***_gm {
            def  PRODUCTION_MODEL = true
            resValue "string", "app_name", "***"
            applicationId = "***"
            buildConfigField("String", "API_URL", "***")
            manifestPlaceholders = [ENVIRONMENT: "***_gm",
                                    app_icon   : "@mipmap/ic_launcher_gm"]

            dimension "App"
        }
        ***_official {
            resValue "string", "app_name", "***"
            applicationId = "***"
            buildConfigField("String", "API_URL", "***")
            manifestPlaceholders = [ENVIRONMENT: "***_release",
                                    app_icon   : "@mipmap/ic_launcher"]
           
            dimension "App"
        }


    }

主要就是在productFlavors 的各个渠道里面单独配置了app_name, applicationId,api, ENVIRONMENT,和icon。
注意几点,
1 strings.xml 不在在有app_name字段。
2 清单文件里面的写法

 <application
        android:allowBackup="true"
        android:icon="${app_icon}"
        android:label="@string/app_name"
        android:name=".app.App"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

3 ENVIRONMENT目前版本用的友盟统计渠道

 <meta-data android:value="${ENVIRONMENT}" android:name="UMENG_CHANNEL"/>
4 默认选项,根据测试结果,Android Studio直接运行的时候会选择渠道名字字母靠前的渠道配置,不过这个不影响,在Build Variants里面可以自己选择需要的配置。如下图。 WechatIMG222.jpeg
上一篇下一篇

猜你喜欢

热点阅读