uniapp自定义基座的时候往往需要手动改dcloud_control.xml文件的里面的版本号与android的build.gradle中的versionName versionCode保持一致。
<hbuilder debug="false" syncDebug="false">
<apps>
<app appid="__UNI__10AVA31" appver="0.0.59"/>
</apps>
</hbuilder>
每次都需要手动改很费劲。写了个gradle编译脚本。
android.applicationVariants.all { variant ->
//打包重命名
variant.outputs.all {
if (buildType.name == 'debug') {
outputFileName = "APP_V${variant.versionName}_${releaseTime()}_${buildType.name}.apk"
} else {
outputFileName = "APP_V${variant.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
}
}
//动态修改dcloud版本
variant.outputs.each { output ->
output.processResources.doFirst { pm->
def xmlFile = 'src/main/assets/data/dcloud_control.xml'
def xml = new XmlParser().parse(xmlFile)
xml.attributes().put("debug",(buildType.name == 'debug'))
xml.attributes().put("syncDebug",(buildType.name == 'debug'))
def app = xml.apps.app[0];
app.attributes().put("appver",variant.versionName)
println("变更DCloud配置文件"+xml)
new XmlNodePrinter(new PrintWriter(new FileWriter(xmlFile))).print(xml)
}
}
}
Done!
转载请注明:天狐博客 » Android开发之gradle动态修改uniapp版本号