多渠道打包apk"/>
砖垛之android studio 友盟多渠道打包apk
一、在友盟后台注册一个账号,
1、当新添加应用时,
点击提交
这个appkey,就是友盟后台的通行证,
2、当已经添加过应用时
这个时候友盟的AppKey我们就拿到了
二、添加友盟的依赖
1、 在项目的 build.gradle文件里的allprojects节点里添加
忘记友盟的库对应的是哪一个了,这个就看情况了,全写上也不会报错,早晚能用上!
allprojects {repositories {jcenter()mavenCentral()maven { url '' }}
}
2、 在APP的目录下的build.gradle文件里的dependencies里添加依赖
// 友盟多渠道打包compile 'com.umeng.analytics:analytics:latest.integration'
3、 在manifest里的
(1)首先加权限
<!--友盟多渠道打包权限--><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" />
(2)在application节点里添加
<!--友盟key--><meta-data
android:name="UMENG_APPKEY"android:value="这里填,在友盟后台里拿到的AppKey" /><!--渠道号--><meta-data
android:name="UMENG_CHANNEL"//UMENG_CHANNEL_VALUE这是一个变量,不用管为什么,直接用就好android:value="${UMENG_CHANNEL_VALUE}" />
(3)在app目录下build.gradle里添加
def releaseTime() {return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
android {compileSdkVersion 26buildToolsVersion "25.0.3"defaultConfig {applicationId "mo.mo"minSdkVersion 16targetSdkVersion 26versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"// AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE}manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Mo"]//添加一个默认渠道号}//添加我们签名文件配置signingConfigs {//这两个环境不同,但是密码什么的一般都是一样的//测试环境debug {storeFile file("mo.jks")//key store,秘钥名storePassword "111111" //密码keyAlias "mo"//别名keyPassword "111111"//别名密码}//正式环境release {storeFile file("mo.jks")//秘钥storePassword "111111"//密码keyAlias "mo"//别名keyPassword "111111"//别名密码}}buildTypes {debug {shrinkResources false // 移除无用的resource文件minifyEnabled false //不启用混淆proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro','proguard-fresco.pro'//签名配置signingConfig signingConfigs.debug}release {shrinkResources false // 移除无用的resource文件minifyEnabled false //启用混淆proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//签名配置signingConfig signingConfigs.release//自定义设置apk名字,可注释applicationVariants.all { variant ->variant.outputs.each { output ->def outputFile = output.outputFileif (outputFile != null && outputFile.name.endsWith('.apk')) {// 输出apk名称格式为:打包人_版本号_打包日期_对应市场.例如:li_v1.0_2015-01-15_wandoujia.apkdef fileName = "li_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"output.outputFile = new File(outputFile.parent, fileName)}}}}}productFlavors {Mo {//普通打包// manifestPlaceholders = [UMENG_CHANNEL_VALUE: Mo]}QQ {//应用宝的包// manifestPlaceholders = [UMENG_CHANNEL_VALUE: QQ]}}//当开启上面的注释的时候,下面的这个就可以注释掉了productFlavors.all {flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}
}
把相关的粘过去就可以了,
(4)生成apk
这里不明白的可以看看这个
点击finish,稍等会就去你的apk路径里看看吧,
我的是放在项目目录下的,所以可以直接在as的目录下看到
注意:渠道命名规范
1.可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。
2.首尾字符不可以为空格
3.不要使用纯数字作为渠道ID
4.最多256个字符
5.”unknown” 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名
更多推荐
砖垛之android studio 友盟多渠道打包apk
发布评论