Распространение разделенных APK-файлов с помощью Firebase App Distribution

«Можно ли использовать распространение приложений Firebase с разделением APK? Он не объявляет зависимость от задачи assemble. Есть ли какие-либо обходные пути для этого?


person Mittal    schedule 04.08.2020    source источник


Ответы (1)


Проблема с плагином gradle в том, что он

  1. не объявляет зависимость от задачи assemble (в общем, независимо от разбиения apk, по соглашению gradle, вы не должны просто ожидать, что там будут apks)

  2. не генерирует задачи для разбиения apk - но вы делаете для вкусов

Попробуйте следующее решение:

// Generate firebase app distribution task variants for all abis
applicationVariants.all { variant ->
variant.outputs.all { output ->
def abi = output.getFilter(com.android.build.OutputFile.ABI)

if (abi == null) return
def abiName = abi.replace("_", "").replace("-", "")
task("appDistributionUpload${abiName.capitalize()}${variant.name.capitalize()}", type: com.google.firebase.appdistribution.gradle.UploadDistributionTask_Decorated) {
appDistributionProperties = new com.google.firebase.appdistribution.gradle.AppDistributionProperties(
new com.google.firebase.appdistribution.gradle.AppDistributionExtension(),
project,
variant
)
appDistributionProperties.apkPath = output.outputFile.absolutePath
appDistributionProperties.serviceCredentialsFile = project.file("secrets/ci-firebase-account.json")
appDistributionProperties.releaseNotes = abi
appDistributionProperties.groups = "ra-testers"
 
// Add dependsOn respective assemble task, so it actually
// builds apk it wants to upload, not just expect it to be there
dependsOn "assemble${variant.name.capitalize()}"
}
}
}
person Chintan    schedule 04.08.2020
comment
Спасибо за твой ответ! - person Mittal; 06.08.2020