Gradle 配置 BuildConfig详解

BuildConfig 前面文章有简要提到,这次详细介绍每个命令代表什么。

这个功能非常强大,我们可以通过在这里设置一些key-value对,这些key-value 对在不同编译类型的 apk 下的值不同,比如我们可以为debug 和release 两种环境定义不同的服务器

先来看下简单的release模式

buildTypes {
         release {
          //是否开启混淆
            minifyEnabled true      
            //混淆文件    
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
   }

对应的build是这样的:
这里写图片描述
你可能会问,没有设置debug版本,为啥有一个assembleDebug,其实你不设置release配置,assembleRelease也存在,因为debug,release是默认的配置。

我们可以加一些其他type。比如beta用于平时开发,这个命令打出来的包,日志开关开着,并且没有混淆,方便定位错误。proguard用于测试即将发布的版本,日志开关开着,加代码混淆,主要验证代码混淆后是否有异常,并且可以根据日志定位错误。

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }


        beta {
            minifyEnabled true

        }
        proguard{
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }

再次查看我们的task,发现多了这些task
这里写图片描述

发布apk包,需要签名,非常简单只需要在对应的buildType下设置signingConfig

  signingConfigs {
        release {
            keyAlias 'keystore'
            keyPassword '111111'
            storePassword '111111'
            storeFile file('/Users/keystore/Documents/app/stone.keystore')
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }

        beta.initWith(buildTypes.debug)
        beta {
            minifyEnabled true
            signingConfig signingConfigs.release

        }
        proguard{
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }

signingConfig这个没什么说的gradle的api,signingConfigs.release中的signingConfigs对应signingConfigs task,这名称也不能修改,照着写就行了;signingConfigs.release中的release是自定义的,你可以随意定义,也可以根据buildType定义多套签名,一般为了方便,使用一套签名就ok

其他关于buildType的属性请查阅官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值