gradle 文件读取签名 信息 多渠道打包

利用gradle能够很方便的帮助我们 多渠道 打包 签名  

String[] getSigningProperties(boolean isDebug) {
    File propFile = new File('sign_info.properties')
    if (propFile.exists()) {
        def Properties props = new Properties()
        props.load(new FileInputStream(propFile))
        if (isDebug) {
            def signP = new String[1];
            signP[0] = props['DEBUG_STORE_FILE']
            return signP
        } else {
            def signP = new String[4];
            signP[0] = props['STORE_FILE']
            signP[1] = props['STORE_PASSWORD']
            signP[2] = props['KEY_ALIAS']
            signP[3] = props['KEY_PASSWORD']
            return signP
        }
    }
}

这个是如何读取 签名信息   学过 Java的 都应该知道  如何  读取properties  键值对

android{

//签名
signingConfigs {
    debug {
        try {
            def signP = getSigningProperties(true)
            storeFile file(signP[0])

            v2SigningEnabled false
        } catch (ex) {
            ex.printStackTrace()
        }
    }
    preview {
        try {
            def signP = getSigningProperties(true)
            storeFile file(signP[0])

            v2SigningEnabled false
        } catch (ex) {
            ex.printStackTrace()
        }
    }
    release {
        try {
            def signP = getSigningProperties(false)
            storeFile file(signP[0])
            storePassword signP[1]
            keyAlias signP[2]
            keyPassword signP[3]

            v2SigningEnabled false
        } catch (ex) {
            ex.printStackTrace()
        }
    }

}

}

下面就是使用上面的方法 进行打包了    应该很容易理解



这几句话就是 多渠道配置   想使用哪个 渠道 自己添加 就好了

productFlavors {
    BaiDu {}
}


//批量配置
productFlavors.all { flavor ->
    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('.apk')) {
            def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
            output.outputFile = new File(outputFile.parent, fileName)
        }
    }
}

这个是清单文件中的 设置  

<meta-data Android:name="channel" android:value="${UMENG_CHANNEL_VALUE}"/>


纯属个人笔记


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值