我们的期望的就是在编译时候这个值能够自动变化以满足区分多渠道的需求。 2、在build.gradle设置productFlavors 这里假定我们需要打包的渠道为小米、百度 android { productFlavors { xiaomi manifestPlaceholders = [CHANNEL_VALUE: "baidu"] } } } 如果打包的渠道比较多我们还可以批量修改 //多渠道打包 /gradlew assemblexiaomiRelease 2、如果我们想打xiaomi渠道的bug版本,执行如下命令: . signingConfigs.debugConfig } } lintOptions { abortOnError false } //多渠道打包
本文链接:https://blog.csdn.net/huangliniqng/article/details/102667952 前言 什么是多渠道打包以及多渠道打包可以做什么,这里就不做介绍了, 相信看到这篇文章的你已经了解了,多渠道打包的方式比较多,这里我们用Gradle多渠道打包方式。 和其他文章有什么不同 网上看到的大多数文章都只讲解了 1.如何修改包名 2.如何修改变量的值 3.如何替换string中的资源 4.如何替换AndroidManifest中的资源 本篇文章会在上述知识点上增加 moudle中如何配置多渠道 在实际的开发中,我们可能会有一个base模块,不同渠道base模块中引用的资源也不同,我们该如何配置呢? 到这里,常用的多渠道打包需要的配置就结束了,如有错误欢迎指正。
gradle 版本:4.1 (gradle-4.1-all.zip) 在defaultConfig添加: defaultConfig{ ... flavorDimensions "versionCode" ... } buildTypes中的配置: buildTypes { release { signingConfig signingConfigs.release //设置签名信息 minifyEnabled true //混淆开启
使用Python生成多渠道包 往apk包中追加到一个空文件到META-INF目录以标识渠道,Android中获取此文件即可获得App的下载渠道 首先在info文件夹新建一个qdb.txt的空文本文件 运行Python代码即可将目录下的apk生成多渠道文件包 ? Python代码如下: #! f.close() # 获取当前目录中所有的apk源包 src_apks = [] # python3 : os.listdir()即可,这里使用兼容Python2的 = null && split.length >= 2) { channel = ret.substring(split[0].length() + 1);
经过一天的奋战,终于搞定了批量打包,不多说,上代码 多渠道就是按照不同的市场进行发布不同的包,由于要改版本名,所以有的时候要打10多个包,在测试部的人员打一次包久会感觉不好, 先说前提,是运用android
正文 Umeng多渠道 我们在项目中会使用统计SDK,用的最流行的当属umeng了吧。这里我们就用友盟来说明。 UMENG_CHANNEL_VALUE},如下: <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> 2. META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } // 友盟多渠道打包 /gradlew assembleRelease 2.assemble和Product Flavor 结合创建指定渠道的任务版本。
由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这事就简单了。 友盟多渠道打包 废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段: <meta-data android:name="UMENG_CHANNEL" android **assemble**: 允许构建指定Build Type的所有APK,例如assembleDebug将会构建Flavor1Debug和Flavor2Debug两个Variant版本。 } } } } } // 友盟多渠道打包
关于如何多渠道打包,以下文字详细解答了Android如何实现多渠道打包以及快速打包。 多渠道打包 配置gradle实现多渠道打包 每当应用发布一个新的版本的时候,我们会分发到每一个应用市场中去,比如,360手机助手,小米应用市场,华为应用市场等。 gradle为我们的打包提高了很多的便利,多渠道打包也可以轻松实现。 gradle实现多渠道打包的缺点 虽然gradle配置多渠道打包很简单,也很方便,但是这种方式存在一个致命的缺陷,那就是费时间。 首先看一下区块2的文件结构: 区块2中APK Signing Block是由这几部分组成:2个用来标示这个区块长度的8字节 + 这个区块的魔数(APK Sig Block 42)+ 这个区块所承载的数据
build.gradle实例: apply plugin: 'com.android.application' android { /** * 设置编译 sdk 和编译工具的版本 */ compileSdkVersion 19 buildToolsVersion "24.0.3" /** * 为所有的 build variants 设置默认的值. 关于 build variant, 我们后面会用一张图片说明 */ defau
PrometheusAlert 特性 支持多种消息来源,目前主要有prometheus、graylog2、graylog3、grafana 支持多种类型的发送目标,支持钉钉、微信、腾讯短信、腾讯语音、华为短信 接口 接口路由 解释 /graylog2/phone 腾讯云电话接口(v3.0版本将废弃) /graylog2/dingding 钉钉接口 /graylog2/weixin 微信接口 /graylog2 /txdx 腾讯云短信接口 /graylog2/txdh 腾讯云电话接口 /graylog2/hwdx 华为云短信接口 /graylog2/alydx 阿里云短信接口 /graylog2/alydh 阿里云电话接口 8080/prometheus/alert' Prometheus Server 的告警rules配置,可参考如下模板: groups: 1. name: node_alert rules: 2. 一般严重,3 严重,4 灾难 messagelevel=3 #电话告警级别(等于4就进行语音告警) 告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难 phonecalllevel=4
目前公司有一个需求,就是我们App要做多渠道,之前一个App但是现在客户要求各自的渠道包要用自的服务器地址。也就是之前一个包,现在有可能几十上百个包。 ####### 工程基本信息配置 ########################### #循环数组,需要打包的渠道名称,以空格隔开 channelArray=("Channel1" "Channel2" 可能会遇到两个问题 1.在终端执行Shell脚本可能会报没有权限的错误 解决办法:chmod +x /路径/xxx.sh 2.ExportOptions.plist 是什么? # # 配置App信息数组 格式:"AppName(和工程中appInfo.Plist对应)" "icon" #Schemes: # 1.app1 app1Icon # 2. app2 app2Icon # 3.app3 app3Icon # -----------------------------------------------------------
版本名 buildConfigField:自定义属性,和buildTypes中类似 manifestPlaceholders:manifest文件中属性 好了,我们一起使用productFlavors进行多渠道打包 2、Sync Now Sync Now后,您就会发现,在Build Variants中: ? 4、打包上线即可 今天只是简单的总结了下使用Gradle进行多渠道打包上线,有不对的地方希望大家指出。
操作系统:mac os 10.13.4 加固软件版本:3.0.7.12 问题:辅助工具 -> 多渠道打包,针对乐固加固包进行多渠道打包失败。 (未加固的包可以进行多渠道打包) 渠道设置如下: image.png 打包问题: image.png 查看如下。 image.png
多渠道打包: 可以理解为:同时发布多个渠道的apk。分别上架不同的应用商店。这些apk带有各自渠道的标签,用于统计分析各个商店的下载次数等数据。 --多渠道打包--> <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/> 五、gradle 实现多渠道打包 ? 测试: 可以看到outputs --> app 中多了各个渠道的release.apk 包 ?
已不推荐本方法,多渠道打包请看【Android】Walle多渠道打包&Tinker热修复。 现状 多渠道打包,相信很同学都知道。在Android Studio中只要经过配置,就能打出对应市场的渠道包。 想到这里就有点小激动 一共要打7个包,每个包大概2~3分钟。开始打包,于是电脑疯狂转了十几分钟。完毕,坐等发布。这时候发现一个文案错误,要我改一下。这不是要了亲命,我刚打完的包。 apk 一切都准备好了,看我如何快速完成多渠道打包。 多渠道打包 在360加固助手里面,选择辅助工具,在弹出的窗口中选择渠道打包 ? ? 多渠道打包加签名,大概也就1~2分钟,加上生成一个包的时间,一共5分钟不到。相比Android Studio 的15分钟打包时间,速度快了不少。而且包的数量越多,节省的时间也越多。 注意:已通过Walle实现多渠道打包,打包速度确实快,而且方便。【Android】Walle多渠道打包&Tinker热修复 以上有错误之处,感谢指出
我们都知道国内应用市场非常多,为了统计各个应用市场的app下载量和使用情况,我们需要多渠道的打包。如果一个一个的手动去打包岂不烦死了,要多麻烦就有多麻烦。 这就要求我们学会使用Gradle进行多渠道打包。废话不多说了,直接进入正题吧! AndroidManifest.xml文件中,大约如下: <meta-data android:name="UMENG_CHANNEL" android:value="xiaomi" /> 如果不使用多渠道打包方法 使用多渠道打包的方式,就需要把上面的value配置成下面的方式: <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE
Android使用Ant进行apk多渠道打包 前言: Ant 是什么? 3,ant-contrib.jar,这个jar主要用来支持编译的批量操作,下载地址http://mirrors.ibiblio.org/maven2/ant-contrib/ant-contrib/1.0b3 /ant-contrib-1.0b3.jar,下完之后放到步骤2解压目录的lib目录。 /output”/> 2,加载渠道信息,并使用ant的 foreach功能实现批量打包; 1 <target name="myPackChannels"> 2 <foreach target="myPackBuild param="build.channel" delimiter=","> 3 </foreach> 4 </target> 可以看到这里是从 ${build.channels} 中读取相关渠道信息,多渠道中间用
Walle 介绍 Walle(瓦力):Android Signature V2 Scheme签名下的新一代渠道包打包神器。 ——来自 Walle 使用 使用Walle生成多渠道的速度是很快的,原来的项目打一个包就需要两分钟多,每次发布打7个包需要十几分钟。用了Walle后,7个包只要两分钟左右就完事了。那叫一个快... walle的配置以及对应的结果 本文主要讲了Walle的多渠道打包,更多强大的功能出门左拐 ---- 续Tinker 还不知道什么是Tinker?怎么用? 我们刚生成了那么多渠道包,可是补丁包只有一个,这... 这个补丁包对所有的渠道包都有效! 这个补丁包对所有的渠道包都有效! 这个补丁包对所有的渠道包都有效! 源码地址 Github(需要添加签名) 参考 Walle Android打包之多版本、多环境、多渠道 (续)Android热更新:Tinker热修复与Walle多渠道打包 以上有错误之处,感谢指出
{ packageName "com.example.flavor1" versionCode 20 } flavor2 { packageName "com.example.flavor2" minSdkVersion 14 } } } 这样就可以输出两个定制的 通过多渠道打包框架快速打多渠道包 这里推荐使用walle来打多渠道包,新一代多渠道打包神器。 配置示例: // 多渠道使用walle示例(注:多渠道使用) apply from: 'multiple-channel.gradle' 创建multiple-channel.gradle,内容如下: 命令行打多渠道包: ./gradlew clean assembleReleaseChannels 输出结果如下: ? ok,到此已经实现快速打多渠道包了。 如何获取渠道信息?
padServer.do, config.bool = false 我想加快apk打包速度啊, 一方面是还在用eclipse, 二来如果用普通的gradle的farvor方式还是不够快,美团都有v2方案了 但是由于我写的地址%2Chttp%3A%2F%2F10.1.64.42%3A9082%2Finsure-pad%2FpadServer.do%2Cfalse由于我试的是android 5.1的机器, 暂时判定存在特殊字符串 PackageManager.GET_META_DATA); String channel = appInfo.metaData.getString("Goapk_Market"); 这里采用的是网易云捕精英大队开发了多渠道打包工具 ,该工具主要基于manifest和meta渠道包制作方式,实现快速批量多渠道包的生成。 (打包系列教程之六) - CSDN博客 https://blog.csdn.net/javazejian/article/details/50760590 Android快速批量多渠道包的“蛋生”