zoukankan      html  css  js  c++  java
  • android——利用gradle实现多渠道打包并自定义包名(umeng多渠道)

    1.首先在mainfest.xml文件中,给umeng_channel设置一个变量“${UMENG_CHANNEL_VALUE}

    2.在gradle中,配置flavors。

     productFlavors {
            yingyongbao {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_txyyb"]
          
            }
            s360 {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_360"]
           
            }
            baidu {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_baidu"]
         
            }
            xiaomi {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_xiaomi"]
               
            }
            huawei {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_huawei"]
              
            }
            meizu {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_meizu"]
              
            }
            lenovo {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_len"]
                applicationId 'com.songheng.beijingtianqikuaibao'
            }
            oppo {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_oppo"]
    
            }
            vivo {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_vivo"]
    
            }
            ali {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_ali"]
    
            }
            yingyonghui {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_yyh"]
    
            }
            sougou {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_sougou"]
    
            }
            anzhi {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "bjtq_anzhi"]
            }
        }

    3.可以直接签名打包了。

    这么打包,apk所在路径:项目路径appapp-anzhi-release.apk 

    4.自定义包名方式

      applicationVariants.all { variant ->
            variant.outputs.each { output ->
                if ('release'.equals(variant.buildType.name)) {
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
    
                        def buildLable = ""
                        def buildName = ""
    
                        // 是否是连接测试服务器版本
                        if (rootProject.hasProperty('TestServer')) {
                            buildLable = "${buildLable}_Test"
                        } else {
                            buildLable = "${buildLable}_Product"
                        }
                //buildname 是channel名称
                        variant.productFlavors.each { product ->
                            buildName = product.name
                        }
    
                        // 是否是testin版本
                        if (rootProject.hasProperty('TestIn')) {
                            buildLable = "${buildLable}_TestIn"
                        }
                        def productName = "bjtqyb"
                        def fileName = "${productName}_v${defaultConfig.versionName}_${releaseTime()}${buildLable}_${buildName}.apk"
                        output.outputFile = new File("${rootDir}/outapks/", fileName)
                    }
                }
            }
        }
  • 相关阅读:
    冒泡排序算法
    delphi 处理图片(剪切,压缩)
    delphi 创建DLL文件 及其调用和注意事项
    对属性的认识
    timer实现Grid自动换行(连续相同的id跳到下一行)
    Form1调用Unit2类中函数
    微信二次分享不显示摘要和图片
    location.search为空导致微信拿不到code的问题
    考虑一下微信跳转的登录流程如何修改-无感知
    微信7.0(2019年1月份之后,没法使用抓包了,也许是为了安全,所以联调出问题记得看后台日志)
  • 原文地址:https://www.cnblogs.com/shoneworn/p/7722936.html
Copyright © 2011-2022 走看看