Android多渠道打包

1、注册友盟
2、配置xml


<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/><!--APP_KEY-->
<meta-data android:value="Channel ID" android:name="${UMENG_CHANNEL_VALUE}"/><!--占位符 渠道号-->
<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:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/><!--APP_KEY-->
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>

<meta-data android:value="Channel ID" android:name="${UMENG_CHANNEL_VALUE}"/><!--占位符 渠道号-->


3、配置gradle脚本文件


apply plugin: 'com.android.application'


def keystoreFile = file("keysotre.jks")
def keystorePorperties = new Properties();
keystorePorperties.load(new FileInputStream(keystoreFile))




android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"


    defaultConfig {
        applicationId "com.dlm.app"
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"


        multiDexEnabled true //突破方法数95535的限制
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"] //添加默认渠道
    }

sourceSets{//制定jni或.so文件目录位置

  main{

   jniLibs.srcDirs = ['lib']

}

}

    //添加签名文件配置
    signingConfigs {
        debug {}


        release {
            storeFile file("keysotre.jks")
            storePassword "123456789"
            keyAlias "dlmdyt"
            keyPassword "123456789"
//            storeFile keystorePorperties['storeFile']
//            storePassword keystorePorperties['storePassword']
//            keyAlias keystorePorperties['keyAlias']
//            keyPassword keystorePorperties['keyPassword']


        }


    }


    buildTypes {
        release {
            minifyEnabled false//是否启用代码混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release


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


                }


            }
        }
    }


    //添加多渠道
    productFlavors {
        xiaomi {
            //  manifestPlaceholders = [UMENG_CHANNEL_VALUE:"xiaomi"] 第一种写法
            //resValue("string", "app_name", "xiaomiapp") 替换资源,如:改变appname
        }


        wandoujia {
            //manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
            //resValue("string", "app_name", "wandoujiaapp")
        }


//        okttp {
//            applicationIdSuffix "okhttp"//给APPid添加后缀,使得在同一部手机上可以安装不同包名的安装包
//            resValue("string", "app_name", "okhttp")
//        }


    }


    //第二种写法,遍历各个渠道,直接替换名称name即可
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile project(':mysdk')
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.squareup.okhttp3:okhttp:3.7.0'
    compile 'de.hdodenhof:circleimageview:2.1.0'
    compile 'com.facebook.fresco:fresco:1.3.0'
}





4、命令行打包命令:

gradlew assembleRelease

或单个渠道的release:gradlew assemblewandoujiaRelease

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值