美文网首页Android实战
Android studio 3.0:多渠道打包

Android studio 3.0:多渠道打包

作者: 暮色将蓝 | 来源:发表于2018-02-01 14:53 被阅读1956次

    基于友盟SDK

    1.修改AndroidManifest.xml

    <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>
    

    2.修改module下build.gradle

    A.添加打包渠道

    android{
      productFlavors {
    
            xiaomi {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
            }
            qh360 {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"]
            }
    
            wandoujia {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
            }
    
            huawei {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei"]
            }
        }
    }
    
    
    

    B.添加flavorDimensions "versionCode"

    defaultConfig {
            applicationId "com.musejianglan.gank"
            minSdkVersion 14
            targetSdkVersion 26
            versionCode 3
            versionName "3.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            flavorDimensions "default"
        }
    
    

    在defaultConfig中添加flavorDimensions "default"即可,这是是studio3.0引入的新规则

    原则上,多渠道基本配置完成。首先builde一下,然后开在AndroidStudio菜单栏点击Build菜单–>Generate signed APK开始打包


    微信图片编辑_20180201144426.jpg 在Flavors选中待打包的渠道即可,这里全部选中。完成之后会在目录看到 微信截图_20180201144728.png

    如果需要自定义apk的名字

    buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    
                // 自定义输出配置
                applicationVariants.all { variant ->
                    variant.outputs.all { output ->
                        outputFileName = "gank_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
                    }
                }
            }
        }
    

    注意

    如果项目中有多个module进行依赖,保证buildTypes { }子项数量及名称一致
    例如

    app:
    
    buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    
                // 自定义输出配置
                applicationVariants.all { variant ->
                    variant.outputs.all { output ->
                        def outputFile = output.outputFile
                        if (outputFile != null && outputFile.name.endsWith('.apk')) {
                            outputFileName = "gank_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
    //                        output.outputFile = new File(outputFile.parent, outputFileName)
                        }
                    }
                }
            }
    
       }
    
    library:
    
    buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
    
        }
    
    如果app有debug项,子项也要添加同名子项。内容为空即可
    

    支付宝发红包啦!即日起还有机会额外获得余额宝消费红包!长按复制此消息,打开最新版支付宝就能领取!q1iF0j95U0

    微信图片_20180712133728.png

    相关文章

      网友评论

        本文标题:Android studio 3.0:多渠道打包

        本文链接:https://www.haomeiwen.com/subject/epydzxtx.html