Gradle 添加签名配置实现快速打包
2019-05-02 本文已影响0人
Sunhee21
Gradle 添加签名配置实现快速打包
在app build.gradle里添加signingConfigs(Android7.0开始多了V2签名)

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,把签名配置信息写在里面,提交版本控制时,不提交这个签名配置文件

#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,不然不带签名。
以及下方代码可以指定包输出目录

//指定输出磁盘目录
//输出类型
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
}
}

之后双击这个就可以了
