我尝试将我们的 Android 应用程序转换为使用 Kotlin DSL 进行 gradle,但我无法让 AppDistribution 在我的 CI 构建中工作。这是我得到的错误:
App Distribution 找到了超过 1 个此变体的输出文件。请联系 firebase-support@google.com 获取使用 APK 拆分与应用分发的帮助。
这就是在 groovy 中的工作:
applicationVariants.all { variant ->
variant.outputs.each { output ->
tasks.findAll {
it.name.startsWith(
"appDistributionUpload${variant.name.capitalize()}")
}.each {
it.doFirst {
it.appDistributionProperties.apkPath = output.outputFile.absolutePath
}
}
}
}
我找不到appDistributionProperties.apkPath
在 kotlin dsl 中设置的方法:
applicationVariants.forEach { variant ->
variant.outputs.forEach { output ->
tasks.filter {
it.name.startsWith("appDistributionUpload${variant.name.capitalize()}")
}.forEach {
it.doFirst {
it.setProperty("apkPath", output.outputFile.absolutePath)
}
}
}
}
我猜我需要一个魔术字符串而不仅仅是“apkPath”,因为似乎不存在一种强类型的说法。