Android(安卓)通过配置 productFlavors 实现多版本差异化打包
16lz
2021-01-26
0.效果
开发过程中,因为种种原因,有时需要在同一手机上安装测试版和生产版,所需效果如下:
1.创建productFlavors
在APP的gradle中添加:
android { ... //创建productFlavors productFlavors { ceshi{//配置测试版包名和应用名 applicationId "ceshi.yb.com.wanandroid" manifestPlaceholders = [APP_NAME: "@string/app_name_ceshi"] } shengchan{//配置生产版包名和应用名 applicationId "shengchan.yb.com.wanandroid" manifestPlaceholders = [APP_NAME: "@string/app_name_shengchan"] } }}
此时应该报以下错误:
Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
在defaultConfig 中加上:
defaultConfig { ... flavorDimensions "versionCode" }
再重新编译下就OK了.
2.创建统一文件夹
切换到Project模式的目录:
在src目录下新建ceshi(/shengchan)包:
再新建以下包和文件:
资源文件同:
调试时点击 Build Variant 选择自己需要的版本即可正常引用
3.配置不同的应用名或其他属性
首先strings.xml中添加:
测试版WanAndroid 生产版WanAndroid
然后manifest中改下lable:
android:label="${APP_NAME}"//引用gradle中定义的变量 android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
打包时同时选择两个即可:
源码已提交到GitHub,可以的话请顺便点个小星星。
更多相关文章
- Android(安卓)项目配置之 Version Name & Code
- Android(安卓)QQ和微信分享
- 1.Ubuntu下Android(安卓)studio配置
- Android(安卓)Studio 配置签名
- Android中对/data/data//files下文件的读写操作
- android SDK的常用命令工具和资源
- adb常用命令
- Android配置环境变量
- android实现gradle动态依赖打包