使用gradle 打多渠道包记录经验
如下图可见,每个渠道是包含debug 和realse版本的。
通过打印BASE_URL 发现在渠道和版本中都可以修改BuildConfig的常量,这样一次可以打出多个服务器的测试包了

打包代码如下:

android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.administrator.test"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
flavorDimensions "versionCode"
}
signingConfigs {
debug {
keyAlias 'test'
keyPassword '123456'
storeFile file('E:/Test/app/test.jks')
storePassword '123456'
} release {
keyAlias 'test'
keyPassword '123456'
storeFile file('E:/Test/app/test.jks')
storePassword '123456'
}
}
productFlavors {
ceshi {
applicationId "com.example.test1"
buildConfigField 'String', 'BASE_URL', '"测试版本"'
}
zhenshi {
applicationId "com.example.test2"
buildConfigField 'String', 'BASE_URL', '"正式版本"'
}
}
buildTypes { release {
signingConfig signingConfigs.release
minifyEnabled false
buildConfigField 'String', 'ABC', '"Relase正式版本"'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} debug {
signingConfig signingConfigs.release
minifyEnabled false
buildConfigField 'String', 'ABC', '"Debug测试版本"'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
lintOptions {
disable 'GoogleAppIndexingWarning'
} applicationVariants.all { variant ->//批量修改Apk名字
variant.outputs.all { output ->
if (!variant.buildType.isDebuggable()) {
//获取签名的名字 variant.signingConfig.name
//要被替换的源字符串
def sourceFile = "-${variant.flavorName}-${variant.buildType.name}"
//替换的字符串
def replaceFile = "_V${variant.versionName}_${variant.flavorName}_${variant.buildType.name}_${getCurrentTime()}"
outputFileName = output.outputFile.name.replace(sourceFile, replaceFile);
//遗留问题:如何获取当前module的name,如CodeBooke这个名字怎么获取到
}
}
} }
//获取当前时间
def getCurrentTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}

Gradle 打多渠道包的更多相关文章

  1. Eclipse打包多渠道包(库工程版)

    请先移步多渠道打包http://www.cnblogs.com/bhm666/p/6438776.html 自从上次使用了Gradle打渠道包后,遇到了各种各样的问题,不过也是小问题,仍然在几个项目上 ...

  2. Eclipse打包多渠道包

    下面介绍的是在eclipse中使用gradle进行多渠道打包(添加签名+混淆) 1,首先新建一个android测试项目,结构如下图所示: 2,选中右键选择expert->生成gradle文件,如 ...

  3. android studio 使用gradle 导出jar包,并打包assets目录

    警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...

  4. [转]--android studio 使用gradle 导出jar包,并打包assets目录

    转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html   最近项目在做一个sdk,供别的开发者使 ...

  5. java~gradle构建公用包并上传到仓库

    java~gradle构建公用包并上传到仓库 我们一般会把公用的代码放在一个包里,然后其它 项目可以直接使用,就像你使用第三方包一样! 仓库 存储包的地方叫做仓库,一般可以分为本地仓库和远程仓库,本地 ...

  6. java~gradle构建公用包并上传到仓库~使用私有仓库的包

    在新的项目里使用仓库的包 上一讲中我们说了java~gradle构建公用包并上传到仓库,如何发布公用的非自启动类的包到私有仓库,而这一讲我们将学习如何使用这些包,就像我们使用spring框架里的功能包 ...

  7. 美团的android多渠道包的3种方法

    转: http://tech.meituan.com/mt-apk-packaging.html 美团Android自动化之旅—生成渠道包 zhihu2014-06-13 10:06 概述 每当发新版 ...

  8. Ant自动化打多渠道包,Android批量打包提速

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

  9. gradle引jar包,引工程

    gradle引jar包有直接引mvn仓库的,也有引本地的,引本地jar包需要: compile files("xxxxxx.jar")

随机推荐

  1. macbook远程连接报错no matching cipher found

    在.ssh/目录下添加config文件 Host xxx.xxx.xxx.xxx Ciphers 3des-cbc KexAlgorithms +diffie-hellman-group1-sha1 ...

  2. zeebe 集成elasticsearch exporter

    zeebe 目前还在一直的开发中,同时一些变动还是挺大的,比如simple monitor 的以前是不需要配置HazelcastExporter的 估计是为了进行集群功能处理,新添加的,以前写的配置基 ...

  3. MySQL innobackupex全量备份恢复

    转自 http://blog.itpub.net/27099995/viewspace-1295099/ 先简单介绍一下这个工具:innobackupexinnobackupex比xtarbackup ...

  4. python中使用redis实战

    from redis import StrictRedis rds = StrictRedis(host='127.0.0.1', port=6379, db=0, decode_responses= ...

  5. 使用Visual Studio给SQL生成测试数据

    参考:http://www.cnblogs.com/CareySon/archive/2012/02/20/2359444.html 使用VS2010的数据生成计划来生成测试数据 以下面两个表来做例子 ...

  6. 搞懂iobuffer就得先学习bytebuffer

    ByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰. <程序员的思维修炼>一本书讲过,主动学习,要比单纯看资料效果来的好,所以干脆写个详细点的文章来记录一下. ...

  7. 音频格式软件 GoldWave 支持V3

    版本:GoldWave v5.67 md5:36E78BE278908B6538CE24D41A6859BA sha1:36A00003562F071670588D29E573B2FB0D8FF40A ...

  8. osx免驱网卡推荐

    1. 单频2.4G芯片为Realtek RTL8188cu, RTL8192cu,都可以用,如TP-Link TL-WN821N.TP-Link TL-WN823N等等:2. 单频2.4G芯片为Med ...

  9. 导入tensorflow时DLL load failed: 找不到指定的模块

    简单暴力:卸载 重装 方法一: 先删除:pip uninstall tensorflow 再下载:pip install tensorflow 方法二: 也有可能是numpy版本不匹配的问题: 卸载: ...

  10. (C#)生成指定长度的随机字符串的通用方法

    .NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: #region 生成指定长度的随机字符串 / ...