Catch up on everthing we announced at this year's Firebase Summit. Learn more

Firebase Crashlytics 使用入门

此快速入门介绍了如何使用 Firebase Crashlytics SDK 在应用中设置 Firebase Crashlytics,以便您可以在 Firebase 控制台中获得全面的崩溃报告。

若要设置 Crashlytics,必须在 Firebase 控制台和 IDE 中执行任务(例如添加 Firebase 配置文件和 Crashlytics SDK)。如需完成设置,您需要强制造成一次测试崩溃,以便向 Firebase 发送您的第一个崩溃报告。

准备工作

  1. 为您的 Unity 项目添加 Firebase(如果尚未添加)。如果您没有 Unity 项目,可以下载示例应用

  2. 建议做法:若要使用“未遇到崩溃问题的用户”、“面包屑导航日志”和“疾速崩溃提醒”等功能,您需要在 Firebase 项目中启用 Google Analytics(分析)。

    • 如果您的现有 Firebase 项目未启用 Google Analytics(分析),您可以访问 Firebase 控制台,依次点击”>“项目设置”,然后在集成标签页中启用 Google Analytics(分析)。

    • 如果您要创建新的 Firebase 项目,请在项目创建工作流内启用 Google Analytics(分析)。

第 1 步:在 Firebase 控制台中启用 Crashlytics

  1. 转到 Firebase 控制台中的 Crashlytics 信息中心

  2. 确保从页面顶部的 Crashlytics 旁边的下拉列表中选择您的应用。

  3. 点击启用 Crashlytics

第 2 步:将 Firebase Crashlytics SDK 添加到您的应用

  1. 下载 Firebase Unity SDK,然后将其解压缩到方便的位置。

    Firebase Unity SDK 不局限于特定平台。

  2. 在您打开的 Unity 项目中,依次转到 Assets > Import Package > Custom Package

  3. 从解压缩后的 SDK 中,选择导入 Crashlytics SDK (FirebaseCrashlytics.unitypackage)。

    您也可以导入其他任何受支持的 Firebase 产品

  4. 在“Import Unity Package”窗口中,点击 Import

第 3 步:初始化 Crashlytics

  1. 创建一个新的 C# 脚本,然后将其添加到场景中的 GameObject

    1. 打开您的第一个场景,然后创建一个名为 CrashlyticsInitializer 的空 GameObject

    2. 在新对象的 Inspector 中点击 Add Component

    3. 选择 CrashlyticsInit 脚本以将其添加到 CrashlyticsInitializer 对象中。

  2. 在该脚本的 Start 方法中初始化 Crashlytics:

    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 initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                    // 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()
        // ...
    }

第 4 步:运行项目

  1. 将您的项目导出到 iOS 或 Android。

  2. 导出完成后,通过将导出的项目与下面的导出配置示例进行比较,验证是否正确导出项目。

    如果在比较您的项目之后发现似乎缺少文件,请打开 Unity 编辑器,然后运行 Google Play Services Resolver(请参阅以下说明)。

    iOS

    Android

如果在导出后发现缺少文件,请运行解析器(根据需要)

Google Play Services Resolver 可确保您的 Unity 项目具有将应用导出到 iOS 或 Android 的相应依赖项。如需详细了解该解析器,请访问 Unity Jar Resolver 的自述文件。

第 5 步:强制造成一次测试崩溃以完成设置

若要完成 Crashlytics 设置并在 Firebase 控制台的 Crashlytics 信息中心内查看初始数据,您需要强制造成一次测试崩溃。

  1. Hierarchy 窗口中,创建一个新对象:

    1. 右键点击并选择 Create Empty,以向游戏中的场景添加新的空 GameObject

    2. 将新对象命名为 CrashlyticsTester

    3. 请确保已选中 CrashlyticsTester 对象,然后再继续操作。

  2. Inspector 标签页中,添加一个新脚本,该脚本将在应用运行几秒钟后造成测试崩溃:

    1. 点击 Add Component

    2. 选择组件列表底部的 New Script

    3. 将新脚本也命名为 CrashlyticsTester,然后向该脚本添加以下内容:

      using System;
      using UnityEngine;
      
      public class CrashlyticsTester : MonoBehaviour {
      
          int updatesBeforeException;
      
          // Use this for initialization
          void Start () {
            updatesBeforeException = 0;
          }
      
          // Update is called once per frame
          void Update()
          {
              // Call the exception-throwing method here so that it's run
              // every frame update
              throwExceptionEvery60Updates();
          }
      
          // A method that tests your Crashlytics implementation by throwing an
          // exception every 60 frame updates. You should see non-fatal errors in the
          // Firebase console a few minutes after running your app with this method.
          void throwExceptionEvery60Updates()
          {
              if (updatesBeforeException > 0)
              {
                  updatesBeforeException--;
              }
              else
              {
                  // Set the counter to 60 updates
                  updatesBeforeException = 60;
      
                  // Throw an exception to test your Crashlytics implementation
                  throw new System.Exception("test exception please ignore");
              }
          }
      }
      
  3. 构建并运行您的应用:

    1. 依次转到 File > Build Setting,然后从平台列表中选择 Android 或 iOS。

    2. 点击 Build and Run 以构建并运行您的 iOS 或 Android 版应用。

  4. 应用运行后,观察设备日志并等待从 CrashlyticsTester 触发异常。

    • iOS:在 Xcode 的底部窗格中查看日志。

    • Android:在终端中运行以下命令来查看日志:adb logcat

  5. 当您在设备日志中看到异常时,请重启您的应用,以便它可以将崩溃报告发送到 Firebase。

  6. 请转到 Firebase 控制台的 Crashlytics 信息中心 以查看您的测试崩溃报告。

    如果您已刷新控制台,但在五分钟后仍未看到测试崩溃报告,请启用调试日志记录,以查看您的应用是否正在发送崩溃报告。


这样就大功告成了!Crashlytics 现在会监控您的应用是否会发生崩溃,您可以在 Crashlytics 信息中心内查看和调查崩溃报告和统计信息。

后续步骤