Android 打测试包

感谢 多渠道打包之动态修改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了。

Android 打测试包_第1张图片
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共存

你可能感兴趣的:(Android 打测试包)