Migrar um app do Unity do Fabric Crashlytics para o Firebase Crashlytics

Neste guia rápido, descrevemos como migrar seu app atual do Unity do Fabric Crashlytics para o Firebase Crashlytics para que você possa ver todos os relatórios de falhas no Console do Firebase.

Antes de começar

Para este guia, presumimos que você tenha um app do Unity em funcionamento com o Fabric. Se não houver um app do Unity existente no Fabric, siga as instruções em Primeiros passos para usuários novos no Crashlytics.

  1. Faça login no Fabric e navegue até o fluxo de migração.

  2. Verifique se o campo Signed into Google as lista a Conta do Google associada ao seu projeto do Firebase. Se não listar, clique em Switch accounts para selecionar a conta correta.

  3. Clique em Get Started e em Start Linking.

  4. Arraste o app do Fabric adequado à esquerda para o projeto adequado do Firebase à direita.

    Observe que também é possível criar um novo projeto do Firebase.

  5. Clique em Link 1 app to Firebase.

Etapa 2: remover o Fabric

O Fabric adiciona GameObjects à sua cena para inicializar o Crashlytics no seu jogo, assim como diretórios adicionais para os próprios SDKs.

Para garantir que não haja conflitos entre os plug-ins do Fabric Crashlytics e do Firebase Crashlytics, remova as seguintes pastas e arquivos do Fabric do seu projeto do Unity:

  • Em Recursos, exclua os seguintes arquivos:

    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
    
  • Na Janela de hierarquia, remova os seguintes GameObjects

    SampleScene
        Main Camera
        Directional Light
        Canvas
        EventSystem
        FabricInit                  <- DELETE
        CrashlyticsInit             <- DELETE
    
  • Remova todas as entradas do Fabric em Assets > Plugins > Android > AndroidManifest.xml.

    Por exemplo, uma chave conhecida para remover é: android:name="io.fabric.unity.android.FabricApplication"

    Pesquise e remova outras entradas do Fabric, se existirem.

Etapa 3: adicionar arquivos de configuração do Firebase

  1. Navegue até o Console do Firebase.

  2. No canto superior esquerdo, ao lado de Visão geral do projeto, clique em settings e selecione Configurações do projeto.

  3. Para seus apps recém-vinculados, faça o download dos arquivos de configuração específicos do Firebase para cada app vinculado. Para um único projeto do Unity, é possível ter no máximo dois arquivos de configuração.

    • Para iOS: GoogleService-Info.plist
    • Para Android:google-services.json
  4. No seu projeto do Unity, abra a janela Project e mova seus arquivos de configuração para a pasta Assets.

Etapa 4: adicionar o SDK do Firebase Crashlytics

  1. Faça o download do SDK para Unity do Firebase e descompacte o SDK em um local prático.

    O SDK para Unity do Firebase não é específico da plataforma.

  2. No seu projeto aberto do Unit, acesse Assets > Import Package > Custom Package.

  3. No SDK descompactado, selecione a opção para importar o SDK do Crashlytics (FirebaseCrashlytics.unitypackage).

    Também é possível importar qualquer outro serviço do Firebase compatível.

  4. Na janela Import Unity Package, clique em Import.

Etapa 5: inicializar o Firebase Crashlytics

  1. Crie um novo script C# e adicione-o a um GameObject na cena.

    1. Abra sua primeira cena e crie um GameObject em branco chamado CrashlyticsInitializer.

    2. Clique em Adicionar componente no Inspetor para o novo objeto.

    3. Selecione seu script CrashlyticsInit para adicioná-lo ao objeto CrashlyticsInitializer.

  2. Inicialize o Crashlytics no método Start do script:

      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()
          // ...
      }

    Com o SDK adicionado e inicializado, o Crashlytics automaticamente passa a detectar e coletar relatórios de erros.

Etapa 6: substituir chamadas da API do Fabric

Há algumas alterações na API que você precisa levar em consideração. Para mais informações, confira a página de alterações da API do Unity.

Etapa 7: adicionar sua chave da API do Fabric

Como seu app já está em um estado vinculado ao Fabric, é preciso fornecer a chave da API do Fabric do seu app para o Firebase. Isso garante uma transição sem problemas dos relatórios de falhas para o Firebase Crashlytics e permite que você veja todos os dados históricos no painel do Firebase Crashlytics.

  1. No seu projeto do Unity, abra o menu do Firebase Crashlytics selecionando Window > Firebase > Crashlytics.

  2. Digite sua chave da API do Fabric em Fabric API Key.

  3. Clique em Salvar.

Etapa 8: criar seu projeto

Depois de exportar seu projeto para o iOS ou para o Android, verifique se o projeto foi exportado corretamente.

Se parecer que faltam arquivos depois de comparar seu projeto com as configurações de exportação de amostra abaixo, abra o Editor do Unity e execute o Resolvedor do Google Play Services.

iOS

Android

Execute o resolvedor (opcional)

Como executar o resolvedor do Google Play Services

Os resolvedores do Google Play Services garantem que seu projeto do Unity tenha as dependências apropriadas para exportar seu app para iOS ou Android.

Para mais informações sobre o resolvedor, acesse o README do Resolvedor Jar do Unity.

iOS

O resolvedor do iOS é executado automaticamente e utiliza o Cocoapods para colocar as dependências do iOS no diretório Pods exportado.

  • Para fazer o download do Cocoapods para sua máquina:

    • Navegue para Recursos > Resolvedor do Play Services > Resolvedor do iOS > Instalar Cocoapods
  • Para ativar ou desativar a geração de podfiles (opcional):

    • Navegue para Recursos > Resolvedor do Play Services > Resolvedor do iOS > Configurações

    Android

    O resolvedor do Android é executado automaticamente e aproveita o gradle para colocar as dependências do Android em Assets/Plugins/Android.

  • Para executar manualmente o resolvedor:

    • Navegue para Recursos > Resolvedor do Play Services > Resolvedor do Android > Resolvedor
  • Para ativar ou desativar a resolução automática, que fica ativada por padrão:

    • Navegue para Recursos > Resolvedor do Play Services > Resolvedor do Android > Configurações

Próximas etapas

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.