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. c# socket select 模型代码(u3d)

    其实写过多次网络链接.但是因为换了工作,又没电脑在身边,所以以前的代码都没办法翻出来用. 所以从今天起,一些常用的代码只好放到网上. 公司有一个局域网的游戏.本来想用u3d的rpc就可以完成.但是后来 ...

  2. gdoi2017

    今年的gdoi第一天t1大水题一道 裸的kmp 但是 我把记录长度的int数组开成了char类型 正解变爆零 心态爆炸......... 后面的第二题两千字题目以及五千字附加故事(我是没有去看,据说全 ...

  3. MSSQL 构建临时表SQL

    declare @StartQuarter int declare @StartYear int declare @EndQuarter int declare @EndYear int declar ...

  4. bzoj 2669 状压DP

    因为最多有8个'X',所以我们可以用w[i][s]来表示现在我们填了前i个数,填的X的为S,因为每次新加进来的数都不影响前面的最小值,所以我们可以随便添加,这样就有了剩下所有位置的方案,每次都这样转移 ...

  5. js 基本类型&引用类型

    1.基本的数据类型有:undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值 基本类型的比较是值的比较.用==比较 ...

  6. js_页面关闭beforeunload事件

    做圆桌爆文公众号的时候,需要对阅读的文章进行时间统计.是这个公众号的核心功能,客户把文章转发到朋友圈或者转给朋友,记录谁阅读此文章和阅读时长进行记录,从而展示给客户. 功能点是,关闭页面时触发事件,请 ...

  7. macaca安装失败的解决办法!

    https://github.com/macacajs/macaca-android https://www.jianshu.com/p/76a5be6c1036

  8. Kotlin 学习使用之旅(二)

    为什么从二开始呢?再此之前已经有了一篇了,那是刚知道kotlin的时候草(chao)来(chao)的并且学习一篇, 这次是自己在项目中正式使用并且遇到的一些问题记录,供kotlin新入门的童鞋参考,避 ...

  9. 【uva10779】收集者的难题

    按照题意建模就行了. #include<bits/stdc++.h> #define naive 0 #define inf 1000000007 using namespace std; ...

  10. HDU 5129 Yong Zheng's Death

    题目链接:HDU-5129 题目大意为给一堆字符串,问由任意两个字符串的前缀子串(注意断句)能组成多少种不同的字符串. 思路是先用总方案数减去重复的方案数. 考虑对于一个字符串S,如图,假设S1,S2 ...