美文网首页Android
Android 自动化打渠道包

Android 自动化打渠道包

作者: 猿小蔡 | 来源:发表于2020-05-21 14:59 被阅读0次

    本文基于Android studio3.4,JDK1.8,gradle-5.1.1-all。

    前言

    我们经常都会打包上线,然后大多数情况下也都是会有多渠道。按照以前的打包方式,太麻烦了,所以本文阅读了Android-解放双手之Gradle自动化打包实战(原创)一文后,设置了自己的打包方式。

    设置签名的配置

    首先要有签名的文件, 在这里插入图片描述
    在这里插入图片描述

    在这里创建签名文件。怎么创建这里就不说明了。

    签名配置有两种方式

    第一种方式:

    在app的build.gradle中,也就是这个位置, 在这里插入图片描述
    打开之后,在android中 android
    这个位置添加以下代码
    signingConfigs {
            config {
                keyAlias xxxxx
                keyPassword xxxxx
                storeFile file('D:/xxxx.jks')
                storePassword xxxxx
                v1SigningEnabled true
                v2SigningEnabled true
            }
        }
    

    其中的keyAlias ,keyPassword,storePassword 都是在设置的签名文件中设置的。

    第二种方式:

    在app下新建一个signing.properties文件。


    在这里插入图片描述

    内容截图


    在这里插入图片描述
    STORE_FILE = xxxx
    STORE_PASSWORD = xxxx
    KEY_ALIAS = xxxxx
    KEY_PASSWORD = xxxxx
    

    xxx就是第一种方式所要填的xxx。

    在app的build.gradle中编写以下代码

    在这里插入图片描述
    //读取签名配置文件
    def getSigningProperties() {
    
        def propFile = file('signing.properties')
        if (propFile.canRead()) {
            def Properties props = new Properties()
            props.load(new FileInputStream(propFile))
            if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
                    props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
    
                android.signingConfigs.config.storeFile = file(props['STORE_FILE'])
                android.signingConfigs.config.storePassword = props['STORE_PASSWORD']
                android.signingConfigs.config.keyAlias = props['KEY_ALIAS']
                android.signingConfigs.config.keyPassword = props['KEY_PASSWORD']
    
            } else {
    
                println 'signing.properties found but some entries are missing'
                android.buildTypes.release.signingConfig = null
            }
        } else {
            println 'signing.properties not found'
            android.buildTypes.release.signingConfig = null
        }
    }
    

    然后使用这个文件,在android中编写以下代码

    在这里插入图片描述
    //签名配置
        signingConfigs {
            config {
                storeFile
                storePassword
                keyAlias
                keyPassword
                v1SigningEnabled true
                v2SigningEnabled true
            }
        }
    
    getSigningProperties()
    

    多渠道设置

    在这里插入图片描述
    在这里插入图片描述

    添加后就可以设置多渠道了,这里不多说明了。

    制定打正式包的输出路径

    在这里插入图片描述
    applicationVariants.all {
                //判断是release还是debug版本
                def buildType = it.buildType.name
                //获取当前时间的"YYYY-MM-dd"格式。
                def createTime = new Date().format("YYYY-MM-dd", TimeZone.getTimeZone("GMT+08:00"))
                //如果是正式包,将其输入到指定文件夹
                if (buildType == "release") {
                    it.getPackageApplication().outputDirectory = new File('D:\\APP'+ "/${defaultConfig.versionName}/${it.productFlavors[0].name}-${createTime}")
                }
            }
    

    自动化打包

    之前打包的方式,Android Studio 顶部Tab , Build —— Generate Sign Apk。其实不需要设置之前的签名配置,这样也是可以打包的。但是设置了之后,不需要这样打包了,太麻烦了。在app的build.gradle配置了签名后,可以这样打多渠道包。在Android studio 的右侧栏, 在这里插入图片描述

    点击这个gradle。

    在这里插入图片描述

    选择assembleRelease即可打包全部的正式包了。需要打单独的渠道包,可以单独点击。

    相关文章

      网友评论

        本文标题:Android 自动化打渠道包

        本文链接:https://www.haomeiwen.com/subject/mogzohtx.html