Saltar al contenido

Cómo deshabilitar Crashlytics durante el desarrollo

Solución:

Encontré la solución de Crashlytics (con integración de Fabric)

Ponga el siguiente código dentro de su clase de aplicación onCreate()

Crashlytics crashlytics = new Crashlytics.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, crashlytics);

EDITAR:

En Crashalitics 2.3 y superior, esto está en desuso. El código correcto es:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());

o

Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build());

(copiado del método obsoleto de Crashlytics disabled ())


EDIT2:

Opcionalmente, también puede agregar esto a su buildType en gradle. Este comando deshabilita el envío del archivo de mapeo de crashlytics y la generación de una ID para cada compilación, lo que acelera las compilaciones de Gradle de esos sabores. (No deshabilita Crashlytics en tiempo de ejecución). Vea la respuesta de Mike B aquí.

buildTypes {
    release {
           ....
    }
    debug {
        ext.enableCrashlytics = false
    }
}

Marc de Crashlytics aquí. ¡Aquí hay un par de formas de deshabilitar Crashlytics mientras realiza sus compilaciones de depuración!

  1. Usa un android: versionString diferente para depurar y lanzar compilaciones y luego deshabilita los informes de fallas desde el panel web de Crashlytics para la versión de depuración.

  2. Envuelva la llamada a Crashlytics.start () en una declaración if que verifique una marca de depuración. Podrías usar una bandera personalizada o un enfoque como los propuestos aquí: ¿Cómo verificar si el APK está firmado o “depurar compilación”?

La respuesta elegida ya no es correcta. Google cambió la integración de Crashlytics. Mi versión actual es 2.9.1 y lo único que tuve que hacer es agregar implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' a mi archivo Gradle. No se requieren más cosas, bueno, pero esto significa que Crashlytics siempre se está ejecutando.

Solucion 1

Compile Crashlytics solo en la versión de lanzamiento:

dependencies {
   ...
   releaseImplementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version
}

Solucion 2

Si desea configurar adicionalmente Crashlytics, la Solución 1 no funciona, ya que las clases de Crashlytics no se encontrarán en Debug Builds. Así que vuelva a cambiar la implementación de Gradle a:

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version

Luego vaya a su Manifiesto y agregue lo siguiente meta-data etiqueta dentro de la application etiqueta:

<application
        android:name="...>

        <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="false" />

...

</application>

Agregue a su actividad de lanzamiento (solo se requiere una vez, no todas las actividades)

if (!BuildConfig.DEBUG) { // only enable bug tracking in release version
   Fabric.with(this, new Crashlytics());
}

Esto solo habilitará Crashlytics en versiones de lanzamiento. Tenga cuidado, también verifique BuildConfig.DEBUG cuando luego configure Crashlytics, por ejemplo:

if (!BuildConfig.DEBUG) {
   Crashlytics.setUserIdentifier("HASH_ID");
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *