多渠道打包

友盟多渠道打包
添加依赖:

compile 'com.umeng.analytics:analytics:latest.integration'

添加权限和友盟appkey:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

        <meta-data
            android:name="UMENG_APPKEY"
            android:value="57f894e6e0f55acf8d00002c" />//填写你的appkey
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="${UMENG_CHANNEL_VALUE}" />//使用占位符,方便多渠道打包
//生成签名文件
    signingConfigs {
        release {
            keyAlias 'leon'
            keyPassword '123456'
            storeFile file('../storekeys/common.jks')
            storePassword '123456'
        }
        debug {
        }
    }

     defaultConfig {
        applicationId "com.example.leon.autocompletetext"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        //突破应用方法数65535的一个限制
        multiDexEnabled true
        //占位符
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
    }

     buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //添加这一行代码
            signingConfig signingConfigs.release
        }
    }

三种打包方式:

第一种:比较麻烦

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

第二种:最常用

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            signingConfig signingConfigs.release

            //指定我们release包的输出文件名就是我们的渠道名称
            applicationVariants.all{
                variant -> variant.outputs.each{
                    output -> def outFile = output.outputFile
                        if(outFile != null && outFile.name.endsWith(".apk")){
                            def fileName = "${variant.productFlavors[0].name}"+".apk"
                            output.outputFile = new File(outFile.parent, fileName);
                        }
                }
            }
        }
    }

    productFlavors {
        xiaomi {//里面什么都不用写
        }
        wandoujia {}
        baidu {}
        c360 {}
        uc {}
        yingyongbao {}
        huawei {}
        sangxing {}
        oppo {}
        vivo {}
        anzhi {}
        meizu {}
        ppzhushou {}
    }

    productFlavors.all{
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

第三种:可同时安装多个测试包
与第二种代码区别,主要是在productFlavors{}里面,
注意:使用时,必须将strings.xml的app_name注释掉,否则会报错

    productFlavors {
        okhttp {
            //在applicationID后面添加后缀,即打包后的名称
            applicationIdSuffix "okhttp"
            resValue "string", "app_name", "okhttp"
        }
        jpush {
            applicationIdSuffix "jpush"
            resValue "string", "app_name", "jpush"
        }
    }

windows下打包命令:

gradlew assembleRelease
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值