Gradle中多个manifestPlaceholders配置说明

部分集成的第三方SDK会通过Gradle.manifestPlaceholders字段注入在AndroidManifest中

两种方法如下:

1:通过Gradle.Flavor配置,代码如下

productFlavors {  
    JPushDebug {
        applicationId packageName
        manifestPlaceholders = [
                JPUSH_PKGNAME: applicationId,
                JPUSH_APPKEY : "appkey", //JPush上注册的包名对应的appkey.
                JPUSH_CHANNEL: "defaultChannel", //暂时填写默认值即可.
        ]
    }
    JPushRelease {
        applicationId packageName
        manifestPlaceholders = [
                JPUSH_PKGNAME: applicationId,
                JPUSH_APPKEY : "appkey", //JPush上注册的包名对应的appkey.
                JPUSH_CHANNEL: "defaultChannel", //暂时填写默认值即可.
        ]
    }
}
这种方式在打包的时候会产生额外的Build Variants(构建变量),改动较大。

下面详细介绍第二种方式:

2:通过Gradle.buildTypes字段配置,代码如下:

buildTypes {
    debug {
        shrinkResources false // 移除无用的resource文件
        minifyEnabled false //不启用混淆
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro',
                'proguard-fresco.pro'
        //签名配置
        signingConfig signingConfigs.debug

        manifestPlaceholders = [
                JPUSH_PKGNAME: packageName,
                JPUSH_APPKEY : "appkey", //JPush上注册的包名对应的appkey.
                JPUSH_CHANNEL: "defaultChannel", //暂时填写默认值即可.
        ]
    }
    release {
        shrinkResources false // 移除无用的resource文件
        minifyEnabled true //启用混淆
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        //签名配置
        signingConfig signingConfigs.release

        manifestPlaceholders = [
                JPUSH_PKGNAME: packageName,
                JPUSH_APPKEY : "appkey", //JPush上注册的包名对应的appkey.
                JPUSH_CHANNEL: "defaultChannel", //暂时填写默认值即可.
        ]
    }
}
原理讲解:

Gradle.manifestPlaceholders的配置等同于BaseConfigImpl.setManifestPlaceholders(Map<String, Object>)方法,如图所示:

 

buildTypes下的变量(如:debug、release)对应BuildType类,BuildType继承与BaseConfigImpl类,所以能够调用。如图所示:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值