sto dividendo la mia applicazione sulla base di ABI, non sulla densità, in questo modo:Tessuto Beta e APK divide
splits {
abi {
enable true
reset()
include 'x86', 'armeabi', 'armeabi-v7a', 'mips', 'arm64-v8a'
universalApk true
}
}
ho più i sapori, e 2 tipi di build (debug e rilascio). Voglio mettere il file apk universale, che ha lib native per tutte le piattaforme, su fabric beta. Da quello che ho capito, questo è supportato tramite l'attributo ext.betaDistributionApkFilePath.
Posso definirlo sia a livello buildType, sia a livello di gusto. Il problema è che ho bisogno sia di tipo accumulo e sapore a prendere mia variante - qualcosa di simile:
android.applicationVariants.all { variant ->
variant.ext.betaDistributionApkFilePath = "${buildDir}/outputs/apk/app-${variant.productFlavors[0].name}-universal-${variant.buildType.name}.apk"
}
o
gradle.taskGraph.beforeTask { Task task ->
if(task.name ==~ /crashlyticsUploadDistribution.*/) {
System.out.println("task name: ${task.name}");
android.applicationVariants.all { variant ->
System.out.println("match: crashlyticsUploadDistribution${variant.name}");
if(task.name ==~ /(?i)crashlyticsUploadDistribution${variant.name}/){
ext.betaDistributionApkFilePath = "${buildDir}/outputs/apk/app-${variant.productFlavors[0].name}-universal-${variant.buildType.name}.apk"
System.out.println(ext.betaDistributionApkFilePath);
}
}
}
Purtroppo questo non sembra funzionare - non v'è alcun modo per farlo questo al momento?
Questo si comporta proprio come non avere la variabile definita - mi avverte di più file apk e quindi esce. – Mark
Grazie Mark, questo dovrebbe funzionare fino a quando è noto il percorso verso l'APK universale. Quando si costruisce il percorso viene popolato correttamente? –
Se eseguo l'hard-code di ext.betaDistributionApkFilePath nella configurazione, senza variabili, trova il file apk universale corretto, ad es. ext.betaDistributionApkFilePath = "app/build/uscite/apk/app-flavor1-universal-debug.apk". Quello che sto cercando di fare è impostare dinamicamente quel percorso in base sia al gusto di build (lite/pro), sia al tipo di build (release/debug). Ogni combinazione di sapore e tipo di build ha un ID di applicazione univoco. – Mark