使用Gradle生成一个App的不同版本
来源:互联网 发布:聚合数据认证需要多久 编辑:程序博客网 时间:2024/05/21 23:00
项目测试时有时需要测试生产版和测试版,但是Android手机对于同样的Application Id的App只能安装一个版本,每次重新安装很麻烦。为了方便测试,可以使用gradle生成两个不同的版本,并安装在同一部手机上。
目的:在同一部手机上同时安装同一个项目的生产版及测试版,并能通过不同的APP Name区别。
修改debug版的包名
配置如下:
android { buildTypes { release { ... } debug { applicationIdSuffix '.debug' ... } }}
修正资源文件里的包名
如果你的项目里使用了自定义的View,且有自定义的属性时,会需要修正一下xml命名空间里的包名。
android.applicationVariants.all { variant -> def buildType = variant.buildType def encoding = java.nio.charset.StandardCharsets.UTF_8.toString() if (buildType.applicationIdSuffix) { def defaultPackageId = variant.packageName.replaceAll(buildType.applicationIdSuffix,'') variant.mergeResources.doLast { def dir = file("${buildDir}/intermediates/res/merged/${variant.dirName}/layout") dir.listFiles().each { f-> String content = f.getText(encoding) content = content.replaceAll("res/"+defaultPackageId, "res/"+variant.packageName) f.write(content, encoding) } } }}
定制APK的应用名称
android.applicationVariants.all { variant -> def buildType = variant.buildType def encoding = java.nio.charset.StandardCharsets.UTF_8.toString() if (buildType.applicationIdSuffix) { def defaultPackageId = variant.packageName.replaceAll(buildType.applicationIdSuffix,'') variant.mergeResources.doLast { def f = file("${buildDir}/intermediates/res/merged/${variant.dirName}/values/values.xml") String content = f.getText(encoding) content = content.replaceAll('XXX','XXXBeta') f.write(content,encoding) } }}
demo地址:https://github.com/Lulu0828/TwoVersionDemo
阅读全文
0 0
- 使用Gradle生成一个App的不同版本
- Gradle构建不同版本App
- 在build.gradle文件中添加若干个依赖后出现以下问题,字面意思是测试app和正式app使用了不同版本的依赖
- Android studio 修改 app的 build.gradle实现同一APP不同版本同时存在(同一APP安装N次)
- Gradle配置打包成不同的app
- Gradle篇_构建不同的app
- Gradle编译生成不同的版本,动态设定应用标题 / 应用图标 / 替换常量
- 在Gradle中编译一次生成不同的版本,动态设定应用标题,应用图标,替换常量,andrioid gradle
- 生成不同ABI版本APK在build.gradle中的配置
- 如何在一个设备上安装一个App的两个不同版本
- 【Andrioid】在Gradle中编译一次生成不同的版本,动态设定应用标题,应用图标,替换常量
- Eclipse下Gradle使用不同资源打包多版本应用
- android studio,gradle版本,gradle插件版本的使用问题
- 利用productFlavors创建不同版本的App
- gradle多渠道打包和同一App打包不同版本Api调用
- androidstudio 一个项目多个不同功能的版本解决方法(多渠道打包,生成不同包名的包)
- 使用不同版本Gradle构建Andorid 出现Gradle version xxxx is required
- 使用不同版本Gradle构建Andorid 出现Gradle version xxxx is required
- uva12100解题报告
- HDU4725
- 哈希表(Hash Table)及散列法(Hashing)
- JAVA 多线程爬虫实例详解
- 深入理解javascript原型和闭包
- 使用Gradle生成一个App的不同版本
- 盘点那些牛逼却不为人所知的软件
- underscore.js中的类型检测
- Android线程—Join方法
- spring boot与kafka集成
- 【软考】权法-著作权
- 抠图
- 李明--linux视频---CH1--LINUX简介
- linq时间转换,int转换成string