android 友盟多渠道打包工具,Android多渠道打包(友盟)

1.在Manifest.xml文件中添加权限和AppKey

权限:

AppKey和渠道变量:

//设置动态渠道变量

2.在build.gradle中设置productFlavors

为不同的渠道市场进行设置:

android {

productFlavors {

xiaomi {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]

}

baidu {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]

}

wandoujia {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]

}

}

}

//通过gradle脚本语法统一设置不同的渠道

android {

productFlavors {

xiaomi {}

baidu {}

wandoujia {}

}

productFlavors.all{

flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

}

3.对应用进行打包操作

在AndroidStudio菜单栏点击Build菜单–>Generate signed APK

d8d56bed0ad1dd7856a5d41e84a829fe.png

e554fa194c1b956a9b84a0d9c939e955.png

4.通过studio命令行工具,进行打包

命令:gradlew assembleRelease 开始打包

3a32ad1b0b716cb683ad4523486794ee.png

打包成功

6c035f81ebb5de4ba5d7f82c33722f95.png

查看apk

4755e7adf2f476a067e511e43f1fc819.png

至此,多渠道打包就已经完成!!

4.签名

//添加签名文件配置

signingConfigs{

debug{}

//为release包添加签名文件配置

release{

storeFile file("Multi.jks")

storePassword "5258168699"

keyAlias "Multi"

keyPassword "5258168699"

}

}

注意:signingConfigs代码块一定要写在buildTypes前面,否则会报错:

Could not find property 'debugConfig' on SigningConfig container.

5.自己的多渠道打包

android {

compileSdkVersion 25

buildToolsVersion "25.0.3"

defaultConfig {

applicationId "xiaoming.com.multi"

minSdkVersion 15

targetSdkVersion 25

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

multiDexEnabled true

//默认设置友盟

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]

}

//添加签名文件配置

signingConfigs{

debug{}

//为release包添加签名文件配置

release{

storeFile file("Multi.jks")

storePassword "5258168699"

keyAlias "Multi"

keyPassword "5258168699"

}

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

// 自定义输出不同的渠道配置

applicationVariants.all { variant ->

variant.outputs.each { output ->

def outputFile = output.outputFile

if (outputFile != null && outputFile.name.endsWith('.apk')) {

// 输出apk名称为wooyun_v1.0_wandoujia.apk

def fileName = "${variant.productFlavors[0].name}_app_v${defaultConfig.versionName}.apk"

output.outputFile = new File(outputFile.parent, fileName)

}

}

}

}

}

productFlavors{

// xiaomi{

manifestPlaceholders = [UMENG_CHANNEL_VALUE : "xiaomi"]

// //对不同的渠道进行值替换

// resValue("string","app_name","xiaomi")

// }

// wandoujia{

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]

// resValue("string","app_name","wandoujia")

// }

// baidu{

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]

// resValue("string","app_name","baidu")

// }

//为不同功能的apk进行打包测试,可以在同一手机上安装同一应用进行不同功能的测试

okhttp{

applicationIdSuffix "okhttp"

resValue "string","app_name","okHttp"

}

jpush{

applicationIdSuffix "jpush"

resValue "string","app_name","jpush"

}

}

//通过gradle脚本语法统一设置不同的渠道

productFlavors.all{

flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

exclude group: 'com.android.support', module: 'support-annotations'

})

compile 'com.android.support:appcompat-v7:25.3.1'

compile 'com.android.support.constraint:constraint-layout:1.0.2'

//添加友盟应用统计支持

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
友盟渠道打包工具主要是提供基本的通过工程源码打包的功能。 常见错误见这里目前不支持的Apk特性见这里(可能会导致发布的SDK产生严重bug)。 Google 现在已经发布了最新的构建系统(New Building System) , 在 Android Studio 中已经支持了最新的 构建系统,如果开发者已经迁移,可以使用新的系统方面的生成渠道包,这是取代渠道打包工具的最佳方式。 1. 工程结构 工程结构图 : - CommonTools 共用的工具类,包括对 `Apktool` , `Jarsigner` , `zipalign` 的封装 - UIControls_35   共用的UI类,对大部分控件的样式都是在这里设置的 - UmengMarket  Marekt 组件,现在还没有实现 - UmengPackage 打包组件 - UmengTools 工程主要UI,管理 UmengMarket, UmengPackage, UmengTools 三个组件 - UmengWidget 小工具组件,目前仅有解包分析的功能 打包工具组件: - Source - Builder - ApkBuilder.cs     通过 APK 打包的 Builder 实现                    - Builder.cs            抽象 Builder 类,提供打包的主要逻辑                    - SourceBuilder.cs通过源码打包的 Builder 实现 (目前代码还没有实现)          - Worker.cs 打包过程对外接口 3. 打包流程 V2.0 版本仅实现了通过 .apk 打包的方式,本质上对  apk 文件进行反编译,修改 AndroidManifest.xml 文件后,再重新打包,我们使用的工具是开源的拆包工具 Apktool 将  apktool  添加到当前 process 的环境变量 执行 apktool d --no-src -f xxxx.apk temp 拆解apk 替换或者添加 AndroidManifest.xml 中的 友盟channel 执行apktool b temp  unsigned.apk 重新打包apk 执行 SignApk.jar 生成签名后的 apk 文件 执行 zipAlign 生成对齐优化后的 apk 文件 回到 3 替换新的渠道 完成打包 使用  JarSigner.jar 给 Apk 签名, SignApk.jar  文件是我们修改过的 apk 签名工具,实现了和 ADT 中一样的签名方式,使用如下: Usage: signapk file.{keystore} keystore_password key_entry key_password input.apk output.apk

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值