AndroidStudio-Gradle定制多签名多渠道打包
来源:互联网 发布:怎么恢复数据 编辑:程序博客网 时间:2024/05/16 12:24
前言:
前段时间写一个项目,一套软件为不同的客户服务,每一个客户都对应一个软件,有不同软件名字logo,欢迎页面,服务器信息等,但是除这些之外的页面都是一样的.刚开始的想法是为每一个客户都建立一个Git分支,再建一个开发的分支用来合并新的开发的修复代码.打包的时候,我就傻了,每一个就要分别打包,特别特别麻烦.因为客户的数量也是不少的,每一次更新打包都需要花费几个小时,80%都是在等待AndroidStudio编译打包的进度条,真是呵呵了
后来发现的gradle的多渠道打包功能,只要配置好ProductFlavor,一切都是那么简单~内心是欢呼雀跃的,不说废话了,开始进入正题~
需求:
这里我们需要明白需求:
一个项目打包成多个具有不同签名,不同包名,Logo,软件名称的apk
而这些东西分别位于Android项目文件目录的哪些地方?
1.包名-------------------AndroidManifest.xml
2.软件名称-------------res/values/string.xml/app_name
3.软件logo-------------res/mipmap--XXXX
4.签名文件-------------这个因为我一般是用AndroidStudio -bulid-Generate Signed apk打包的时候调用签名文件
我们怎么能把这些东西一一对应起来呢,答案是----gradle内配置,具体怎么配置,我们下面分别来讲.
一 .包名配置
使用alpplicationId替代包名
这里我们使用productFlavors配置,这是是专门用来定制每个apk的各种信息的,这里我们演示就是定义了包名 applicationId.这个名字可以自定义.
这个名字我们在这里定义,后面会用到.
//多包名设置 productFlavors { flavor_naruto { applicationId = "com.dr.naruto" } flavor_kakaxi { applicationId = "com.dr.kakaxi" } flavor_zilaiye { applicationId = "com.dr.zilaiye" } flavor_sidai { applicationId = "com.dr.sidai" } }
二.资源文件的配置
1.在main文件夹所在的目录,建立和main文件夹同级的文件夹,名称就是我们上一步productFlavors中定义的,在这里我们就用上了,例如建一个flavor_kakaxi
2.要替换app_name和ic_launcher,在定义好的flavor_kakaxi文件夹中,构建这两个文件的目录结构,一定要保证和main文件夹中是相同的,因为编译apk的时候,就是用flavor_kakaxi替换main来找这个文件,所以要保证路径相同
main\res\mipmap\ic_launcher
flavor_kakaxi\res\mipmap\ic_launcher
三.签名文件的配置
1.使用AndroidStudio的自带的签名方式
(1)创建或者选择已有的签名文件
(2)选择要打包的ProductFlavor,就是我们在第一步中配置好的名称,对应的是不同的包名
2.将签名配置到build.gradle中
在build.gradle中定义SignConfigs,里面配置各个签名信息
//签名配置 signingConfigs { //签名1 dr_sign1 { keyAlias 'dr'//别名 keyPassword 'aaaaaa'//别名密码 storeFile file('D:/Android/dr_sign1.jks')//签名文件路径 storePassword 'aaaaaa'//签名密码 } //签名2 dr_sign2 { keyAlias 'dr'//别名 keyPassword 'bbbbbb'//别名密码 storeFile file('D:/Android/dr_sign2.jks')//签名文件路径 storePassword 'bbbbbb'//签名密码 } //...你可以配置多个 }
四.定义打包apk的类型参数,将签名信息配置在其中
在build.gradle的BulidType配置打包的参数
//打包设置 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } dr_sign1_buildType { debuggable false jniDebuggable false minifyEnabled false zipAlignEnabled true signingConfig signingConfigs.dr_sign1//配置签名文件 } dr_sign2_buildType { debuggable false jniDebuggable false minifyEnabled false zipAlignEnabled true signingConfig signingConfigs.dr_sign2//配置签名文件 } }
五.选择打包类型,开始打包
在gradle窗口(一般在AndroidStudio 的窗体右侧)选择想要打包的签名文件
附上源码:http://download.csdn.net/detail/qq_32452623/9666166
说明
每一次解决问题都要感谢一下那些分享知识,技术和经验的万能的网友们~
参考文章:Gradle实现Android多渠道定制化打包
参考文章:Android Studio 使用Gradle打包版本的Apk-bulidTypes和ProductFlavors参考文章:Gradle实现Android多渠道定制化打包
- AndroidStudio-Gradle定制多签名多渠道打包
- Android Studio Gradle 多渠道,多appkey签名打包
- Android Studio Gradle 多渠道,多appkey签名打包
- Android Studio Gradle 多渠道,多appkey签名打包
- Gradle 实现 Android 多渠道定制化打包
- Gradle 实现 Android 多渠道定制化打包
- Gradle多渠道打包、配置签名信息
- gradle 文件读取签名 信息 多渠道打包
- AndroidStudio使用gradle打包并实现多渠道打包
- Gradle 多环境、多渠道打包
- Gradle多环境多渠道打包
- AndroidStudio工程中的build.gradle中的buildTypes、productFlavors的多构建、多渠道打包APK
- [置顶]Gradle 实现 Android 多渠道定制化打包
- Gradle for Android(三)多渠道打包、配置签名信息
- build.gradle 多渠道打包和用正式签名运行调试
- Android_AndroidStudio多渠道打包及gradle配置签名信息
- Gradle for Android(三)多渠道打包、配置签名信息
- Gradle for Android(三)多渠道打包、配置签名信息
- Java学习之环境搭建
- CSDN-markdown编辑器
- 【NOIP2015】Day1T2 信息传递
- 形态学滤波:腐蚀与膨胀(一)
- 分布式系统设计权衡之CAP
- AndroidStudio-Gradle定制多签名多渠道打包
- 【Error】"Unsupported major.minor version 52.0"
- XML在标签下添加节点
- android软件开发之webView.addJavascriptInterface循环渐进【二】
- Android---ThinkPad开启虚拟化增强(VT)
- poj3421(多重集排列,唯一分解定理)
- 坚持#第78天~不赖床不赖床,手机闹铃远离床!
- 序列化的一些小事情
- bzoj 4515 [Sdoi2016]游戏 线段树维护凸包