Migra la app de Unity de Crashlytics de Fabric a Firebase Crashlytics

En esta guía de inicio rápido, se describe cómo migrar tu app existente de Crashlytics de Fabric para Unity a Firebase Crashlytics para que puedas ver todos tus informes de fallas en Firebase console.

Antes de comenzar

En la siguiente guía, se da por sentado que tienes una app de Unity que funciona con Fabric. Si no la tienes, sigue las instrucciones que se indican en Primeros pasos para los usuarios nuevos de Crashlytics.

  1. Accede a Fabric y, luego, navega al flujo de migración.

  2. Revisa que el campo Accediste a Google como contenga la Cuenta de Google asociada con tu proyecto de Firebase. De lo contrario, haz clic en Cambiar de cuenta para seleccionar la correcta.

  3. Haz clic en Comenzar y, luego, en Iniciar vinculación.

  4. Arrastra la app de Fabric correspondiente de la izquierda al proyecto de Firebase correspondiente de la derecha.

    Ten en cuenta que también puedes crear un proyecto de Firebase nuevo.

  5. Haz clic en Vincular 1 app a Firebase.

Paso 2: Quita Fabric

Fabric agrega GameObjects a tu ambiente para inicializar Crashlytics en tu juego y directorios adicionales para los SDK.

Para asegurarte de que no haya conflictos entre los complementos de Crashlytics de Fabric y Firebase Crashlytics, quita los siguientes archivos y carpetas de Fabric de tu proyecto de Unity:

  • En Elementos, borra los siguientes archivos:

    Assets/
       Editor Default Resources/
           FabricSettings.asset     <- DELETE
       Fabric/                      <- DELETE
       Plugins/
           Android/
               answers/             <- DELETE
               beta/                <- DELETE
               crashlytics/         <- DELETE
               crashlytics-wrapper/ <- DELETE
               fabric/              <- DELETE
               fabric-init/         <- DELETE
           iOS/
               Fabric/              <- DELETE
    
  • En la ventana de jerarquía, quita los siguientes GameObjects:

    SampleScene
        Main Camera
        Directional Light
        Canvas
        EventSystem
        FabricInit                  <- DELETE
        CrashlyticsInit             <- DELETE
    
  • Quita todas las entradas de Fabric en Elementos > Complementos > Android > AndroidManifest.xml.

    Por ejemplo, puedes quitar esta clave conocida: android:name="io.fabric.unity.android.FabricApplication"

    Busca y quita las otras entradas de Fabric que pueda tener.

Paso 3: Agrega los archivos de configuración de Firebase

  1. Ve a Firebase console.

  2. En la esquina superior izquierda, junto a Descripción general del proyecto, haz clic en settings y, luego, selecciona Configuración del proyecto.

  3. En las apps vinculadas recientemente, descarga los archivos de configuración de Firebase específicos para cada plataforma. Puedes tener dos archivos de configuración como máximo para cada proyecto de Unity.

    • En iOS: GoogleService-Info.plist
    • En Android: google-services.json
  4. En tu proyecto de Unity, abre la ventana Proyecto y, luego, transfiere los archivos de configuración a la carpeta Assets.

Paso 4: Agrega el SDK de Firebase Crashlytics

  1. Descarga el SDK de Firebase Unity y descomprímelo en el lugar que prefieras.

    El SDK de Firebase Unity no es específico para cada plataforma.

  2. Abre tu proyecto de Unity, ve a Elementos > Importar paquete > Paquete personalizado.

  3. En el SDK que descomprimiste, selecciona importar el SDK de Crashlytics (FirebaseCrashlytics.unitypackage).

    También puedes importar cualquier otro servicio de Firebase admitido.

  4. En la ventana Importar paquete de Unity, haz clic en Importar.

Paso 5: Inicializa Firebase Crashlytics

  1. Crea una secuencia de comandos nueva en C# y agrégala a GameObject en el ambiente.

    1. Abre tu primer ambiente y, luego, crea un GameObject vacío con el nombre CrashlyticsInitializer.

    2. Haz clic en Agregar componente en el Inspector para el objeto nuevo.

    3. Selecciona tu secuencia de comandos CrashlyticsInit para agregarla al objeto CrashlyticsInitializer.

  2. Inicializa Crashlytics en el método Start de la secuencia de comandos:

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
    
      // Import Firebase
      using Firebase;
    
      public class CrashlyticsInit : MonoBehaviour {
          // Use this for initialization
          void Start () {
              // Initialize Firebase
              Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                  var dependencyStatus = task.Result;
                  if (dependencyStatus == Firebase.DependencyStatus.Available)
                  {
                      // Create and hold a reference to your FirebaseApp,
                      // where app is a Firebase.FirebaseApp property of your application class.
                      // Crashlytics will use the DefaultInstance, as well;
                      // this ensures that Crashlytics is intitialized.
                      Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                      // WARNING: Do not call Crashlytics APIs from asynchronous tasks;
                      // they are not currently supported.
    
                      // Set a flag here for indicating that your project is ready to use Firebase.
                  }
                  else
                  {
                      UnityEngine.Debug.LogError(System.String.Format(
                        "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                      // Firebase Unity SDK is not safe to use here.
                  }
              });
          }
    
        // Update is called once per frame
        void Update()
          // ...
      }

    Una vez que agregues el SDK a tu app y se inicialice, Crashlytics comenzará a trabajar automáticamente para detectar y recopilar informes de fallas.

Paso 6: Reemplaza las llamadas a la API de Fabric

Hay algunos cambios a la API que deberás considerar. Para obtener más información, consulta la página de cambios de la API de Unity.

Paso 7: Agrega la clave de API de Fabric

Como tu app ya se vinculó con Fabric, debes proporcionar la clave de API de Fabric de tu app a Firebase. Esto te asegura que el traspaso de los informes de fallas se realice de forma fluida a Firebase Crashlytics y te permite ver todos los datos históricos en el panel correspondiente.

  1. En tu proyecto de Unity, selecciona Ventana > Firebase > Crashlytics para abrir el menú de Firebase Crashlytics.

  2. Llena el campo clave de API de Fabric.

  3. Haz clic en Guardar.

Paso 8: Compila tu proyecto

Verifica que el proyecto se haya exportado correctamente a iOS o Android.

Si te parece que faltan archivos después de comparar el proyecto con las configuraciones de exportación que se muestran abajo, abre el editor de Unity y ejecuta el agente de resolución de Servicios de Google Play.

iOS

Android

Ejecuta el agente de resolución (opcional)

Ejecuta los agentes de resolución de Servicios de Google Play

Los agentes de resolución de Servicios de Google Play garantizan que el proyecto de Unity tenga las dependencias necesarias para exportar tu app a iOS o Android.

Para obtener más información sobre el agente de resolución, consulta el archivo README del agente de resolución del archivo JAR de Unity.

iOS

El agente de resolución de iOS se ejecuta automáticamente y usa Cocoapods para agregar las dependencias de iOS en el directorio Pods exportado.

  • Para descargar CocoaPods en tu plataforma, haz lo siguiente:

    • Navega a Elementos > Agente de resolución de Servicios de Play > Agente de resolución de iOS > Instalar CocoaPods.
  • Para habilitar o inhabilitar la generación de podfiles (opcional), haz lo siguiente:

    • Navega a Elementos > Agente de resolución de Servicios de Play > Agente de resolución de iOS > Configuración.

    Android

    El agente de resolución de Android se ejecuta automáticamente y usa gradle para agregar las dependencias de Android en Assets/Plugins/Android.

  • Para ejecutar el agente de resolución de forma manual, haz lo siguiente:

    • Navega a Elementos > Agente de resolución de Servicios de Play > Agente de resolución de Android > Resolver.
  • Para habilitar o inhabilitar la resolución automática (habilitada según la configuración predeterminada), haz lo siguiente:

    • Navega a Elementos > Agente de resolución de Servicios de Play > Agente de resolución de Android > Configuración.

Pasos siguientes

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.