外包采用Gradle生成多套app打包
目的:可修改app名称、icon、包名、接口地址及其它
一、 修改基本配置(包名、版本号等)
配置module下的build.gradle
添加productFlavors例如:
productFlavors {
fangwei{
applicationId "com.f"
versionCode 1
versionName "0.1.04.21"
//resValue "string", "app_name", "方维"
}
shunguoshi{
applicationId "com.x"
versionCode 1
versionName "0.1.04.21"
//生成res资源文件值,还可以通过添加文件夹的方式替换
//resValue "string", "app_name", "顺"
//生成BuildConfig值
buildConfigField 'String','DOMAIN_WWW','"s.com"'
}
}
二、 修改资源文件(接口地址、app名称、launcher等)
自定义BuildConfig(接口地址)
buildConfigField 'String','DOMAIN_WWW','"s.com"'
自定义资源(app名称、颜色等)
两种方式
1、resValue
//resValue "string", "app_name", "顺"
resValue ‘boolean’,’isDebug’,’true’
2、为flavor建立对应资源文件
在app->src文件夹下面建立对应flavor如
“fangwei”->res->values->strings.xml
drawable-hdpi->ic_launcher.png
drawable-xhdpi->ic_launcher.png
drawable-xxhdpi->ic_launcher.png
drawable-mdpi->ic_launcher.png
配置应用签名
signingConfigs {
config {
keyAlias 'alias'
keyPassword 'pwd2'
storeFile file('key.keystore')
storePassword 'pwd1'
}
}
AndroidManifest占位符(用于多渠道打包、包名等)
Manifest文件中的内容
<meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>
build.gradle的内容
android {
defaultConfig {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: 'dev']
}
}
三、运行Gradle生成apk
1、chmod 777 gradlew
然后再执行进行编译
./gradlew build
./gradlew tasks //查看android gradle的所有任务
./gradlew assembleFangweiRelease //生成apk,在build/outputs/apk文件夹下
附整份gradle配置
apply plugin: 'android'
dependencies {
compile 'com.android.support:support-v4:19.0.0+'
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':ZYLibrary')
compile project(':library')
}
//def buildTime() {
// def date = new Date()
// def formattedDate = date.format('yyyyMMdd')
// return formattedDate
//}
android {
// buildTypes {
// release {
// applicationVariants.all { variant ->
// variant.outputs.each { output ->
// if (output.outputFile != null && output.outputFile.name.endsWith('.apk')
// &&'release'.equals(variant.buildType.name)) {
// def apkFile = new File(
// output.outputFile.getParent(),
// "yizan_${variant.flavorName}_v${variant.versionName}_${buildTime()}.apk")
// output.outputFile = apkFile
// }
// }
// }
// }
// }
signingConfigs {
config {
keyAlias 'o'
keyPassword 'y
storeFile file('o2o.keystore')
storePassword 'y'
}
}
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.x"
minSdkVersion 14
targetSdkVersion 15
versionCode 1
versionName "0.1.04.21"
// Enabling multidex support.
multiDexEnabled true
// resValue "string", "app_name", "方"
signingConfig signingConfigs.config
buildConfigField 'String','DOMAIN_WWW','"j.com"'
}
productFlavors {
fangwei{
applicationId "com.y"
versionCode 1
versionName "0.1.04.21"
// resValue "string", "app_name", "维"
}
shunguoshi{
applicationId "com.s"
versionCode 1
versionName "0.1.04.21"
// resValue "string", "app_name", "顺"
buildConfigField 'String','DOMAIN_WWW','"s.com"'
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
参考:
http://tech.meituan.com/mt-apk-adaptation.html
http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html
外包采用Gradle生成多套app打包的更多相关文章
- 勾勾街——一个专注于免越狱免签名的苹果ios APP打包生成的网站
自涛舅舅研发的“苹果ios APP自助生成系统”上线以来,每天都有大量的用户注册和生成免越狱app,为什么? 因为我们有明显的技术优势,APP不需要上架appstore, 生成APP又不需要企业签名证 ...
- 使用 Gradle 实现一套代码开发多个应用
代码地址如下:http://www.demodashi.com/demo/11297.html 在文章 使用 Gradle 对应用进行个性化定制 中,我们能够针对一个应用的正式服.测试服.超管服等其他 ...
- App 打包并跳过 AppStore 的发布下载
一.App 打包 (编译 -> 链接 -> 打包) 1) 下载发布版的证书并安装. 2)Target -> Build Setting,改为发布版本的 profile 3) Targ ...
- iOS开发之 xcode6 APP 打包提交审核详细步骤
一. 在xcode6.1和ios10.10.1环境下实现app发布 http://blog.csdn.net/mad1989/article/details/8167529 http://jingya ...
- 【转】xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)
原文网址:http://blog.csdn.net/mad1989/article/details/8167529 最近项目到了最后的阶段,测试完一切ok后,准备打包以及提交,不料看到网上众教程,好多 ...
- xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)
链接地址:http://blog.csdn.net/mad1989/article/details/8167529 打包发布APP流程真机测试和APP发布流程APP提交审核流程真机测试打包发布上传出错 ...
- iOS开发基础:最新的APP打包上架流程
之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...
- ionic app打包和签名
ionic app打包和签名 1.首先在项目根目录执行 ionic platform add android 生成Android平台. 2.配置应用签名:在根目录下执行以下命令 keytool - ...
- Django APP打包重用
引言 有时候,我们需要将自己写的app分发(dist)给同事,分享给朋友,或者在互联网上发布,这都需要打包.分发我们的app. Django的子系统重用是基于app级别的.也就是一个项目可以包含多个互 ...
随机推荐
- HtmlHelper和强类型转换
MVC HtmlHelper;1.Url():<%= Html.ActionLink("用户列表","方法","控制器") %> ...
- 【kd-tree】bzoj2716 [Violet 3]天使玩偶
#include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define ...
- 用PhpStorm IDE创建GG App Engine PHP应用教程
在上一篇教程里我们已经介绍了如何为PhpStorm搭建软件环境,那么今天就该是正式的开始创建App了: 3.创建首个Google App Engine PHP Application 现在我们就可以开 ...
- Cocos2d-x Application Wizard for Visual Studio User Guide
0. Overview Cocos2d-x-win32's project can be generated by Wizard. Wizard supports Visual Studio 2008 ...
- 【整理】--VC 编译整理
.h用于编译阶段的审核,如在math.h中有函数声明:int abs(int);但是在使用中写为#include <math.h>...abs(3,5);编译器阶段就会检测出错误. .dl ...
- 46 个非常有用的 PHP 代码片段
在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...
- ContentControl 与 ViewModel (二)
上文说到 可以使用DataTemplateSelector. 其实等于是用 DataTemplateSelector + 动态创建DataTemplate来实现. using System; usin ...
- [计算机图形学] 基于C#窗口的Bresenham直线扫描算法、种子填充法、扫描线填充法模拟软件设计(二)
上一节链接:http://www.cnblogs.com/zjutlitao/p/4116783.html 前言: 在上一节中我们已经大致介绍了该软件的是什么.可以干什么以及界面的大致样子.此外还详细 ...
- [WinAPI] API 13 [遍历指定目录 打印文件和其他属性]
Windows API中,有一组专门的函数和结构,用于遍历目录,它们是FindFirstFile函数.FindNextFile函数和WIN32_FIND_DATA结构.使用FindFirstFile和 ...
- [翻译]Bob大叔:反思极限编程
译者注: Bob大叔14年后再次谈论极限编程.极限编程经历了14年的风风雨雨后,Bob大叔将会给它怎么样的定义那? 在我手中拿着的一本白皮薄书,在14年前彻底的改变了软件世界.这本书的标题是解析极限编 ...