欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android studio下多渠道打包

程序员文章站 2022-03-23 11:51:13
第一步 在AndroidManifest.xml里配置第二步 在build.gradle里配置编译渠道//多渠道打包productFlavors { wandoujia {} baidu {}...
  • 第一步 在AndroidManifest.xml里配置
  • <!-- ***********************************多渠道打包 开始************************************************** -->
    <meta-data
        android:name="CHANNEL_NAME"
        android:value="${CHANNEL_VALUE}" />
    <!-- ***********************************多渠道打包 结束************************************************** -->
  • 第二步 在build.gradle里配置编译渠道
  • //多渠道打包
    productFlavors {
    
        wandoujia {}
        baidu {}
        qihu360 {}
        yingyongbao {}
    
        productFlavors.all { flavor ->
            flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
        }
    
    }
  • 第三步 在build.gradle里添加编译时间等基础配置key目录
  • signingConfigs {
        debug {
            // No debug config
        }
    
        release {
            storeFile file("../xxx.jks")
            storePassword "xxxxx"
            keyAlias "xxxxx"
            keyPassword "xxxx"
        }
    }
  • 第四步 添加发布时间方法
  • def releaseTime() {
        return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
    }
  • 第五步 添加默认配置
  • 在defaultConfig中加入
  • // dex突破65535的限制
    multiDexEnabled true
    // 默认是baidu的渠道
    manifestPlaceholders = [CHANNEL_VALUE: "baidu"]
  • 第六步 添加编译时lint错误不会中断生成app的配置
  • lintOptions {//在build apk 时Android Lint产生的错误不会导致中断生成APK
        abortOnError false
    }
  • 第七步 修改编译配置
  • buildTypes {
        debug {
            // 显示Log
            buildConfigField "boolean", "LOG_DEBUG", "true"
    
            versionNameSuffix "-debug"
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.debug
        }
    
        release {
            // 不显示Log
            buildConfigField "boolean", "LOG_DEBUG", "false"
    
            minifyEnabled true
            zipAlignEnabled true
            // 移除无用的resource文件
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
    
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 输出apk名称为appname_v1.0_2015-12-17_baidu.apk
                        def fileName = "appname_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }
    
  • 多渠道配置完成
 
  • 打包方法
  • 可以直接在android studio里面用图形工具编译
  • Build -> Generate signed apt -> 填写key信息->填完以后如下图所示  然后选择编译渠道可按住shift多选
  •  
  • 第二种打包方法(左下角点击Terminal)
  •  
  • 输入 ./gradlew assembleRelease就会开始编译了
  • 如果提示bash: ./gradlew: Permission denied那么设置下权限就好了chmod +x gradlew

本文地址:https://blog.csdn.net/chenyou728/article/details/50340347