Gradle 添加签名配置实现快速打包

Gradle 添加签名配置实现快速打包

在app build.gradle里添加signingConfigs(Android7.0开始多了V2签名)

1.png

signingConfigs{
    debug{
        v1SigningEnabled true
        v2SigningEnabled true
    }
    release{
        storeFile
        storePassword
        keyAlias
        keyPassword
        v1SigningEnabled true
        v2SigningEnabled true
    }
}

//读取签名配置文件
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.release.storeFile = file(props['STORE_FILE'])
            android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
            android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
            android.signingConfigs.release.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
    }
}

Tips:增强扩展性的写法,新建一个signing.properties,把签名配置信息写在里面,提交版本控制时,不提交这个签名配置文件


image (2).png
#STORE_FILE = ****.jks  --> keystore 文件位置
#STORE_PASSWORD = ******   ----> keystore 密码
#KEY_ALIAS = sharepack   ----> keystore 文件用到的别名
#KEY_PASSWORD = ******   ----> keystore 文件用到的别名的密码

STORE_FILE = /quick_packet.jks
STORE_PASSWORD = 123456
KEY_ALIAS = quick_packet
KEY_PASSWORD = 123456

Tips:必须在buildType里release使用signingConfig,不然不带签名。
以及下方代码可以指定包输出目录


image (3).png
//指定输出磁盘目录
//输出类型
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(APK_OUTPUT_PATH)//可以弄成常量写在项目的gradle.properties
    }
}

image (4).png

之后双击这个就可以了

image (5).png


你可能感兴趣的:(Gradle 添加签名配置实现快速打包)