gradle打包分测试、开发、生产环境

buildTypes {
debug {
signingConfig signingConfigs.myConfig
buildConfigField("boolean", "isDebug", "true")
}
release {
signingConfig signingConfigs.myConfig//不要忘了要在release的时候加入我么的签名配置信息
minifyEnabled true
buildConfigField("boolean", "isDebug", "false")
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
} //创建两个维度的 flavor
flavorDimensions "channel", "server" productFlavors {
xuehu { dimension "channel" }
// yybao { dimension "channel" }
// wandoujia {}
// baidu {}
// c360 {}
// uc {}
// xiaomi {}
// lenovo {}
// samsung {}
// dev10086 {}
// open189 {}
// wo {}
// huawei {}
// oppo {}
// vivo {}
// flyme {}
// gionee {} dev {
dimension "server"
buildConfigField("String", "APP_URL", '"https://dev.app.xuehu365.com/"')
buildConfigField("String", "WAP_URL", '"https:/m.dev.app.xuehu365.com/"')
buildConfigField("String", "H5_URL", '"https://dev.s.xuehu365.com/"')
buildConfigField("boolean", "isEncode", "false")
buildConfigField("boolean", "isOpenUmeng", "false")
buildConfigField("String", "APPId", '"test"')
buildConfigField("String", "JPushAlias", '"dev_"')
buildConfigField("String", "JPushTags", '"dev"')
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(file.name,
variant.productFlavors[0].name + "_" +
variant.versionName
+ "_dev.apk"))
}
}
}
detect {
dimension "server"
buildConfigField("String", "APP_URL", '"https://test-app.xuehu365.com/"')
buildConfigField("String", "WAP_URL", '"https://test-m.xuehu365.com/"')
buildConfigField("String", "H5_URL", '"https://test-s.xuehu365.com/"')
buildConfigField("boolean", "isEncode", "false")
buildConfigField("boolean", "isOpenUmeng", "false")
buildConfigField("String", "APPId", '"test"')
buildConfigField("String", "JPushAlias", '"test_"')
buildConfigField("String", "JPushTags", '"test"')
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(file.name,
variant.productFlavors[0].name + "_" +
variant.versionName
+ "_test.apk"))
}
}
}
prod {
dimension "server"
buildConfigField("String", "APP_URL", '"https://app.xuehu365.com/"')
buildConfigField("String", "WAP_URL", '"https://m.xuehu365.com/"')
buildConfigField("String", "H5_URL", '"https://s.xuehu365.com/"')
buildConfigField("boolean", "isEncode", "true")
buildConfigField("boolean", "isOpenUmeng", "true")
buildConfigField("String", "APPId", '"xuehu"')
buildConfigField("String", "JPushAlias", '""')
buildConfigField("String", "JPushTags", '"prd"')
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(file.name,
variant.productFlavors[0].name + "_" +
variant.versionName
+ "_prod.apk"))
}
}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}

gradle打包分编译环境的更多相关文章

  1. Android的编译环境--Build系统【转】

    本文转载自:http://blog.csdn.net/kitty_landon/article/details/60764232 Android是一个庞大的系统,包含太多的模块,各种模块的类型也有10 ...

  2. android通过gradle打包

    这里是最简单的打包方法,实际上gradle的语法是groovy,可以通过编写脚本实现更智能的构建,这个我还不懂==,等我学习了解后,单独整理一个gradle的随笔,这里先应付打包吧   环境要求 安装 ...

  3. [原]Android打包之Gradle打包

    最近尝试了一下Android的Gradle打包,发现确实比Ant打包会方便很多,特此记录下来. 注:android的gradle现在插件的版本已经是0.14.3了,对于一些老的方法和api,有一些已经 ...

  4. Android Ant 和 Gradle 打包流程和效率对照

    一.Ant 打包:(下载ant.配置环境变量就不说了) 1.进入命令行模式,并切换到项目文件夹.运行例如以下命令为ADT创建的项目加入ant build支持: android update proje ...

  5. sublime text 3 快捷键大全以及配置编译环境

    Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键 ...

  6. Android Studio中使用Gradle打包

    首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,採用Gradle打包,混淆规则文件的名称是不重要的.能够自己随便命名. ...

  7. windows下安装python的C扩展编译环境(解决“Unable to find vcvarsall.bat”)

    个人文章除注明转载外,均为个人原创或者翻译. 个人文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本文链接:http://www.cnblogs.com/f ...

  8. VIM大作战之C++简易集成编译环境(Windows篇)

    一切都要从这篇文章说起 Vim 实在是精致独特得有点像个林妹妹.但谁要是希望家里也有个林妹妹,光把自家丫头照着绣像打扮打扮是不行的,必须从零开始养成一个.而且就算真能养出来个“天上掉下来”一般的可人儿 ...

  9. sublime text 3 快捷键大全以及配置编译环境(转)

    Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期 坚持使用并熟悉这些常用的快捷 ...

随机推荐

  1. SqlServer中循环和条件语句示例!

    -- ╔════════╗ -- =============================== ║ if语句使用示例 ║ -- ╚════════╝ declare @a int set @a=12 ...

  2. 使用localhost调试本地代码,setcookie无效

    今天在本地调试代码的时候,再域名中使用localhost,结果一直调试不成功,最后发现在登录时,setcookie()没有设置进去 于是发现了,在使用localhost调试时,保存cookie是无效的 ...

  3. 数据结构:Bitset

    这个东西看起来很棒棒的样子呀 bitset存储二进制数位 bitset就像一个bool类型的数组一样 bitset中的每个元素都能单独被访问 整数类型和布尔数组都能转化成bitset 有关Bitset ...

  4. 数据结构:Treap

    关于重量平衡树的相关概念可以参考姊妹文章:重量平衡树之替罪羊树 Treap是依靠旋转来维护平衡的重量平衡树中最为好写的一中,因为它的旋转不是LL就是RR 对于每一个新的节点,它给这个节点分配了一个随机 ...

  5. [洛谷P1338] 末日的传说

    洛谷题目链接:末日的传说 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了. 在古老东方的幻想乡, ...

  6. bzoj 2957: 楼房重建 ——线段树

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  7. 【51NOD】1201 整数划分

    [题意]将n划分成不同正整数的和的方案数. [算法]动态规划 [题解] 暴力:f[i][j]:只用前1..i的数字,总和为j的方案数 本质上是01背包,前i个物体,总质量为j的方案数 f[i][j]= ...

  8. Spring 与 Quartz 动态配置(数漫江湖)

    因为项目的需求,需要有动态配置计划任务的功能.本文在 Quartz JobBean 中获取配置的 Quartz cronExpression 时间表达式及 Spring Bean 的对象名.方法名并运 ...

  9. wait函数

    当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号.子进程终止是一个异步事件(其能够在父进程运行的任何时候发生). 对于wait(),其调用者,即父进程可以有如下状态: 如果其所有子进 ...

  10. vsftp 服务的启动与问题

    一般系统用户是可以直接登入的如果不可以可能是selinux的原因 执行一下: 更改selinux的配置文件将其设为disable,可我不想重启服务器,有以下解决办法:执行命令:setenforce 0 ...