我正在尝试在gradle自动生成的APK文件名中设置特定的版本号.
现在gradle生成myapp-release.apk但我希望它看起来像myapp-release-1.0.apk.
我尝试过重命名看起来很乱的选项.有一个简单的方法吗?
buildTypes {
release {
signingConfig signingConfigs.release
applicationVariants.each { variant ->
def file = variant.outputFile
variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
Run Code Online (Sandbox Code Playgroud)
我试过上面的代码没有运气.有什么建议?(使用gradle 1.6)
随着Gradle 4.10.1和Android Gradle插件的更新3.3.0,我得到以下警告:
警告:API'
variantOutput.getPackageApplication()'已过时,已替换为'variant.getPackageApplicationProvider()'.
该行,与周围的上下文(由构建变量分配输出文件名):
applicationVariants.all { variant ->
variant.outputs.all { output ->
if (variant.getBuildType().getName() in rootProject.archiveBuildTypes) {
def buildType = variant.getBuildType().getName()
if (variant.versionName != null) {
def baseName = output.baseName.toLowerCase()
String fileName = "${rootProject.name}_${variant.versionName}-${baseName}.apk"
// this is the line:
outputFileName = new File(output.outputFile.parent, fileName).getName()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该迁移指南是不是太有帮助; 虽然variant.outputs.all可能有问题 - 只是不知道要替换什么 - 并且迁移指南指的是任务而不是构建变体.禁用时File ? Settings ? Experimental ? Gradle ? Only sync the active variant,我会得到更多的弃用警告(重点是,这些方法都没有被直接调用): …
gradle build.gradle android-gradle-plugin deprecation-warning build-variant
我想在当前输出的APK文件中添加特殊的后缀buildType。我正在尝试使用标准的Gradle versionNameSuffix命令:
android {
defaultConfig {
...
versionNameSuffix "-XXX"
}
buildTypes {
debug {
versionNameSuffix "-YYY"
}
release {
versionNameSuffix "-ZZZ"
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于某些原因,这些后缀均未应用于实际的输出文件名。Android Studio是否会忽略此命令?无论我做什么,结果都是相同的:<module_name>-debug.apk或<module_name>-release.apk。
这是我的配置:
classpath 'com.android.tools.build:gradle:2.2.3'
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
Run Code Online (Sandbox Code Playgroud)