感谢 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源

在测试机上想线上包和测试包共存,那肯定就要修改ApplicationId 啦,
但是每次修改再同步多麻烦,还容易忘记
节约生命的做法

android {    compileSdkVersion 25    buildToolsVersion "25.0.3"    defaultConfig {        applicationId "com.jianshu.default"      ...    }    buildTypes {        debug {        //...            resValue "string", "app_name_jianshu", "debug包"        }        release {            //...            resValue "string", "app_name_jianshu", "APP"        }    }    productFlavors {        xiaomi {}//小米        yingyongbao {} //应用宝        jtest {            // 每个环境包名不同            applicationId "com.jianshu.test"            // 动态添加 string.xml 字段;            // 注意,这里是添加,在 string.xml 不能有这个字段,会重名!!!            resValue "string", "app_name_test", "测试包"//会被buildTypes覆盖        }    }}

上面的app_name_jianshu 就是Application中引用的字段,一般默认都是app_name ,需要将strings中这个字段删除,(注意如果第三方库中有这样的字段那么会去引入第三方里面的)

然后在手动打包时选择不同的渠道就可以打出不同包名(applicationId)的包了,同时应用名称也可以改变。

发现在平时调试的时候,如果没有特别标注,都会去引入productFlavors下其中一个渠道配置。所以app_name没有设置时在调试的时候得app_name就可以知道了。

在平时Run调试的时候,app_name是怎么决定的呢?
这就要看Build Variants了。

Simulator Screen Shot 2017年5月8日 下午11.23.17.png
Build Variants可以选择 debug调试时使用的渠道, app_name也就是渠道对应的 app_name

配置说明:

  1. 调试时打出的包名为com.jianshu.default 应用名称为debug包
  2. 选择线上渠道包名为com.jianshu.default 应用名称为APP
  3. 选择jtest渠道包名为com.jianshu.test 应用名称为APP
    1和2 会互相覆盖安装
    3则可以和1或2共存

更多相关文章

  1. Android(安卓)通过无线调试
  2. Walle —— Android多渠道打包神器
  3. Android手机gdb调试
  4. Android(安卓)SQLite使用
  5. Android(安卓)工具之androidscreencast
  6. 多渠道
  7. Android版本更新时对SQLite数据库升级或者降级遇到的问题
  8. android java.net.SocketException:Permission.denied 解决办法
  9. Android学习笔记10——Android的调试

随机推荐

  1. android aidl通讯两个APP之间的应用
  2. android读写文件
  3. C# mono android 图片上传进度条实现
  4. android 2.2+ 完全退出程序的方法
  5. android SpannableString使用详解,替代多
  6. android中Search之Creating a Searchable
  7. Android(安卓)MediaPlayer研究问题
  8. 判断手机类型
  9. Linearlayout 添加divider
  10. Android开发者网址导航