Estoy intentando y fallando en lograr que Crashlytics se construya en la unidad.
Estoy usando la unidad 2018.4.30. Se agregó a Unity como un paquete (7.0.2). Otros paquetes de firebase ya estaban en el proyecto y funcionando. Inicialmente ejecuté el solucionador de dependencias e intenté construirlo. El resolutor agregó estos:
implementation 'com.google.firebase:firebase-crashlytics:17.2.2' //Packages/com.google.firebase.crashlytics/Firebase/Editor/CrashlyticsDependencies.xml:13 implementation 'com.google.firebase:firebase-crashlytics-unity:7.0.2' //Packages/com.google.firebase.crashlytics/Firebase/Editor/CrashlyticsDependencies.xml:20que se construyó pero se estrelló al iniciarse con un mensaje de error que me indicaba una configuración específica de Android que tenía que agregarse al archivo Gradle (es extraño que el resolutor no lo haya hecho...)
Seguí esas instrucciones y agregué
classpath 'com.google.gms:google-services:4.3.5' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.0'a las dependencias
también agregué
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics'al archivo gradle
mis herramientas gradle son:
classpath 'com.android.tools.build:gradle:3.4.3'mi mensaje de error es:
* What went wrong: A problem occurred configuring root project 'gradleOut'. java.lang.ClassCastException: org.gradle.api.internal.file.DefaultFilePropertyFactory$DefaultDirectoryVar$1 cannot be cast to org.gradle.api.file.DirectoryActualizar gradle wrapper a la versión 5.6.4 (de 5.4.1) resolvió mi problema con este error.
gradle-wrapper.propiedades
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
Mis herramientas Android Build Gradle son 3.5.4
com.android.tools.build:gradle:3.5.4
No vale la pena que si está usando Unity, no debería tener que editar archivos gradle en absoluto. Puede agregar un archivo mainTemplate.gradle si lo desea por otras razones (me gusta hacer esto para que EDM4U no agregue un montón de bibliotecas a Assets/Plugins/Android ) pero debe ser un poco cauteloso (en las versiones más nuevas de Unity , como finales de 2019 y toda la rama de 2020, también debe agregar gradleTemplate.properties ).
Por lo general, solo debe seguir los pasos de integración de Unity en lugar de los de Android . La línea apply plugin: 'com.google.gms.google-services' en realidad entra en conflicto con lo que hace el complemento Firebase Unity. apply plugin: 'com.google.firebase.crashlytics' se puede hacer para que funcione con algo de esfuerzo, pero tampoco es necesario a menos que esté experimentando con la integración de NDK (esta es una configuración no admitida en Unity SDK y el reportero de fallas nativo no actualmente no funciona con Unity 2020 en mis propias pruebas).
Recomendaría revertir cualquier cambio de configuración de compilación que haya realizado para intentar que Crashlytics funcione con Unity e intente volver a importar. También vale la pena mantener el SDK lo más actualizado posible, aunque al mirar las notas de la versión no debería haber cambios en Crashlytics entre 7.0.2 y 7.1.0.
Si lo anterior no funciona, hubo un problema en la rama SDK 6.x con Unity 2020.1. Puede probar esta solución alternativa (tenga en cuenta que estoy reemplazando todo con mainTemplate.gradle ya que 2018 no dividió proyectos como finales de 2019 y 2020):
Ahora abra
mainTemplate.gradley busque algo que se parezca más o menos a:allprojects { buildscript { repositories {**ARTIFACTORYREPOSITORY** google() jcenter() } dependencies {Dentro
allprojects.buildscript.dependencies(lasdependencies {bit en este ejemplo), agregue este código para informarle a Gradle sobre Crashlytics:// Add the Crashlytics Gradle plugin. classpath 'com.google.firebase:firebase-crashlytics-gradle:2.2.0'y esta línea de código hasta el final de
mainTemplate.gradlepara agregar el complemento Crashlytics a su aplicación:// Apply the Crashlytics Gradle plugin apply plugin: 'com.google.firebase.crashlytics'
Si Crashlytics aún no funciona, puede presentar un informe de error . Si la segunda solución funciona o no le importa depurar su proyecto en público, puede presentar un problema de GitHub aquí .
en resumidas cuentas, mi resolución de dependencias no generaba crashlytics_build_id.xml y algunos otros archivos. El mensaje de error me llevó a una solución Gradle específica de Android que no estaba destinada a los clientes de Unity. Una vez que deshice mis cambios de Gradle y tuve esos archivos generados, todo estuvo bien.