【发布时间】:2015-09-16 08:18:54
【问题描述】:
我正在尝试为每个构建变体重命名我的 APK 文件,以包括应用程序名称、版本名称、版本代码和内部版本号(如果存在)。到目前为止,除了应用程序名称之外,我一切正常。
我想使用AndroidManifest.xml 文件用于android:label 的相同值。这来自字符串资源@string/app_name。我已经看到了使用以下方法替换资源值的能力:
resValue "string", "app_name", "Some new value"
但我只想读取这个值并用它来命名我的 APK 文件。
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
renameApk(variant, output)
}
}
def renameApk(variant, output) {
def apkPath = output.outputFile.parent
def baseName = project.archivesBaseName
baseName += "-${variant.buildType.name}"
// add version name and version code
baseName += "-v${variant.mergedFlavor.versionName}-${variant.mergedFlavor.versionCode}"
// if built on jenkins ci, add jenkins build number:
def buildNumber = System.getenv('BUILD_NUMBER')
if (buildNumber && buildNumber.size() > 0) {
baseName += "-b${buildNumber}"
}
// if the variant will not be zipAligned, specify that
if (!output.zipAlign) {
baseName += '-unaligned'
}
// set the output file
output.outputFile = new File(apkPath, "${baseName}.apk");
}
【问题讨论】:
标签: android groovy gradle build android-gradle-plugin