Gre*_*reg 1 android gradle android-studio
我有assembleRelease,它有效,以及assembleDebug和installDebug.
这是我的build.gradle中的一块,我认为它会让任务显示出来,但列表仍然没有.切换构建变体对正在出现的gradle任务没有任何影响.
有任何想法吗?
谢谢!
编辑1 - 我的顶级build.gradle文件("Project:trunk")包含
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
dependencies {
}
Run Code Online (Sandbox Code Playgroud)
我的app级build.bradle文件是
import java.util.regex.Pattern
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.xyz"
minSdkVersion 16
targetSdkVersion 17
}
dependencies {
compile "com.google.android.gms:play-services:3.1.+"
compile "ch.acra:acra:4.5.0"
}
signingConfigs {
release {
storeFile file('redact')
keyAlias 'asdf'
storePassword System.getenv("ANDROIDKEYPW")
keyPassword System.getenv("ANDROIDKEYPW")
}
debug {
keyAlias 'asdf'
storeFile file('redact')
storePassword System.getenv("ANDROIDKEYPW")
keyPassword System.getenv("ANDROIDKEYPW")
}
}
buildTypes {
release {
minifyEnabled true
debuggable false
signingConfig signingConfigs.release
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
debuggable true
}
}
productFlavors {
}
}
task incrementVersionCode << {
println(":incrementVersionCode - Incrementing Version Code...")
def manifestFile = file("src/main/AndroidManifest.xml")
def patternVersionCode = Pattern.compile("versionCode=\"(\\d+)\"")
def manifestText = manifestFile.getText()
def matcherVersionCode = patternVersionCode.matcher(manifestText)
matcherVersionCode.find()
def mVersionCode = Integer.parseInt(matcherVersionCode.group(1))
def mNextVersionCode = mVersionCode + 1
def manifestContent = matcherVersionCode.replaceAll("versionCode=\"" + mNextVersionCode + "\"")
println(":incrementVersionCode - current versionCode=" + mVersionCode);
println(":incrementVersionCode - next versionCode=" + mNextVersionCode);
manifestFile.write(manifestContent)
}
task incrementVersionName << {
println(":incrementVersionName - Incrementing Version Name...")
def manifestFile = file("src/main/AndroidManifest.xml")
def patternVersionNumber = Pattern.compile("versionName=\"(\\d+)\\.(\\d+)\\.(\\d+)\"")
def manifestText = manifestFile.getText()
def matcherVersionNumber = patternVersionNumber.matcher(manifestText)
matcherVersionNumber.find()
def majorVersion = Integer.parseInt(matcherVersionNumber.group(1))
def minorVersion = Integer.parseInt(matcherVersionNumber.group(2))
def pointVersion = Integer.parseInt(matcherVersionNumber.group(3))
def mVersionName = majorVersion + "." + minorVersion + "." + pointVersion
def mNextVersionName = majorVersion + "." + minorVersion + "." + (pointVersion + 1)
def manifestContent = matcherVersionNumber.replaceAll("versionName=\"" + mNextVersionName + "\"")
println(":incrementVersionName - current versionName=" + mVersionName);
println(":incrementVersionName - new versionName=" + mNextVersionName);
manifestFile.write(manifestContent)
}
task release << {
println(":release - Build and Version Increment")
}
task debug << {
println(":debug - Build")
}
incrementVersionName.mustRunAfter build
incrementVersionCode.mustRunAfter build
assembleRelease {}.dependsOn incrementVersionCode
assembleRelease {}.dependsOn incrementVersionName
dependencies {
}
Run Code Online (Sandbox Code Playgroud)
添加signingConfig signingConfigs.release到您的release构建类型:
buildTypes {
release {
minifyEnabled true
debuggable false
signingConfig signingConfigs.release
}
// other good stuff here
}
Run Code Online (Sandbox Code Playgroud)
您的release闭包内部signingConfigs会创建一个命名的签名配置.但是,release由于名称不会导致它自动被release构建类型使用.您可以命名签名配置gregRocks,然后signingConfig signingConfigs.gregRocks在release构建类型中使用,并获得相同的结果.
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |