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. 自己做的jquery的autocomplete的一个例子

    转载自:http://dada-fangfang.iteye.com/blog/695464 首先下载jquery.js和jquery.autocomplete.js 注意:jquery.js 要放在 ...

  2. table第一行合并,其余行宽度失效问题

    <col>标签 http://www.w3school.com.cn/tags/tag_col.asp 由于表格中有一行合并过,所以其它没有合并的行的列宽就会平均化,对列宽的设置也会失效. ...

  3. Independence.

    It's not giving up, it's letting go, and moving to a better place. I will survive and be the one who ...

  4. Java面试题整理二

    一.io有几种流? 有两种流:字节流和字符流. 字节流继承自inputstream和outstream. 字符流继承自write和read. 二.Jdbc的开发流程? JDBC编程的六个步骤: 1)加 ...

  5. 超详细的Java面试题总结(一)之Java基础知识篇

    面向对象和面向过程的区别 面向过程:   优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因 ...

  6. 【自己练习】linux常见命令——(六)

    菜鸟教程命令大全 http://www.runoob.com/linux/linux-command-manual.html 命令大全:      http://man.linuxde.net/ ta ...

  7. LINUX中断学习笔记【转】

    转自:http://blog.chinaunix.net/uid-14825809-id-2381330.html 1.中断的注册与释放: 在 , 实现中断注册接口: int request_irq( ...

  8. C#通过反射获取类中的方法和参数个数,反射调用方法带参数

    using System; using System.Reflection; namespace ConsoleApp2 { class Program { static void Main(stri ...

  9. C++中delete和delete[]的区别(转)

    原文链接:http://www.cnblogs.com/charley_yang/archive/2010/12/08/1899982.html 一直对C++中的delete和delete[]的区别不 ...

  10. FineReport——JS二次开发(隐藏下拉框控件的倒三角)

    在对FR控件进行二次开发的过程中,需要自定义样式,比如下拉框控件带有自动检索的功能,但是又希望它的显示样式如同文本框一样,这时就需要隐藏多余的部分. 在对在线文档的查阅中可以发现很多选择器适用于多种控 ...