我需要设置一个自定义任务,我在使用Gradle for Android构建APK后运行。现在我实际上有两个任务。一个使用APK的路径构建XML文件作为输入,另一个在XML任务(名为packageConfig
)之后运行,并将APK和XML文件捆绑为ZIP。
目前,我的packageConfig
任务出现问题。它仅为" fullRelease"运行python脚本。产品味道,当我实际有多个时:
我的脚本只执行一次,而且错误的APK。例如,我将像这样调用gradle:
$ gradlew :Applications:zApp:assemblex86debug packageConfig
我在我的python脚本中设置print()
调用以输出传入的APK路径,它是:
build\outputs\apk\full\release\zApp.apk
我期待的路径(基于我在命令行中选择的产品风格,以及我知道的那个APK):
build\outputs\apk\x86\debug\zApp.apk
我将在下面粘贴我的gradle任务。任何人都可以帮助我理解我做错了什么吗?我可以对我的脚本进行哪些更正以使其在正确的APK上运行我的脚本?
task packageConfig(type: Exec) {
def buildCommit = getBuildCommit()
def buildBranch = getVcsBranchName()
def buildDescription = buildBranch + '-' + buildCommit
def buildDate = getBuildDate()
workingDir buildscript.sourceFile.parent
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
def apk = output.outputFile
def apkDir = apk.getParent();
def inputConfig = '' + project.projectDir + File.separator +
packageConfigXmlFile
def outputConfig = apkDir + File.separator + 'PackageConfig.xml'
commandLine 'python', 'setup-package-config.py', versions.version, inputConfig,
outputConfig, apk, buildDescription
}
}
}