gradle打包分编译环境
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打包分编译环境的更多相关文章
- Android的编译环境--Build系统【转】
本文转载自:http://blog.csdn.net/kitty_landon/article/details/60764232 Android是一个庞大的系统,包含太多的模块,各种模块的类型也有10 ...
- android通过gradle打包
这里是最简单的打包方法,实际上gradle的语法是groovy,可以通过编写脚本实现更智能的构建,这个我还不懂==,等我学习了解后,单独整理一个gradle的随笔,这里先应付打包吧 环境要求 安装 ...
- [原]Android打包之Gradle打包
最近尝试了一下Android的Gradle打包,发现确实比Ant打包会方便很多,特此记录下来. 注:android的gradle现在插件的版本已经是0.14.3了,对于一些老的方法和api,有一些已经 ...
- Android Ant 和 Gradle 打包流程和效率对照
一.Ant 打包:(下载ant.配置环境变量就不说了) 1.进入命令行模式,并切换到项目文件夹.运行例如以下命令为ADT创建的项目加入ant build支持: android update proje ...
- sublime text 3 快捷键大全以及配置编译环境
Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键 ...
- Android Studio中使用Gradle打包
首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,採用Gradle打包,混淆规则文件的名称是不重要的.能够自己随便命名. ...
- windows下安装python的C扩展编译环境(解决“Unable to find vcvarsall.bat”)
个人文章除注明转载外,均为个人原创或者翻译. 个人文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本文链接:http://www.cnblogs.com/f ...
- VIM大作战之C++简易集成编译环境(Windows篇)
一切都要从这篇文章说起 Vim 实在是精致独特得有点像个林妹妹.但谁要是希望家里也有个林妹妹,光把自家丫头照着绣像打扮打扮是不行的,必须从零开始养成一个.而且就算真能养出来个“天上掉下来”一般的可人儿 ...
- sublime text 3 快捷键大全以及配置编译环境(转)
Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期 坚持使用并熟悉这些常用的快捷 ...
随机推荐
- Java设计模式の工厂模式
-------------------------------------------------------- 目录: 一.序言 二.简单工厂模式 三.工厂方法模式 四.简单工厂和工厂方法模式的比 ...
- [C#] 类型学习笔记一:CLR中的类型,装箱和拆箱
在学习.NET的时候,因为一些疑问,让我打算把.NET的类型篇做一个总结.总结以三篇博文的形式呈现. 这篇博文,作为三篇博文的第一篇,主要探讨了.NET Framework中的基本类型,以及这些类型一 ...
- 整数中1出现的次数(从1到n整数中1出现的次数)
整数中1出现的次数(从1到n整数中1出现的次数) 题目描述 求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下1 ~ 13中包含1的数字有1.10 ...
- 百度地图定位API,精度提高
我使用百度定位API DEMO上面好像就可以setCoorType("bd09ll");//百度地图坐标. 然后我找了下从其它坐标体系迁移到百度坐标. 问下: 1.那我还能不能在百 ...
- 【BZOJ】1014 [JSOI2008]火星人prefix
[算法]splay [题解]对于每个结点维护其子树串的hash值,前面为高位,后面为低位. sum[x]=sum[L]*base[s[R]+1]+A[x]*base[s[R]]+sum[R],其中su ...
- 集合类HashMap,HashTable,ConcurrentHashMap区别?
1.HashMap 简单来说,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null), ...
- python进行机器学习(一)之数据预处理
一.加载数据 houseprice=pd.read_csv('../input/train.csv') #加载后放入dataframe里 all_data=pd.read_csv('a.csv', h ...
- python的时间和日期--time、datetime应用
time >>> import time >>> time.localtime() #以time.struct_time类型,打印本地时间 time.struct_ ...
- python中的enumerate获取迭代元素的下标
以前迭代的时候,需要获取次数都是如下格式: index=1 for node in nodes: if index==3: continue print(node.text_content())ind ...
- JS面试题第一弹
1.javascript的typeof返回哪些数据类型 alert(typeof [1, 2]); //object alert(typeof 'leipeng'); //string ...