从 Firebase 崩溃报告升级为 Firebase Crashlytics

iOS
Android

Crashlytics 是 Firebase 新的主要崩溃报告解决方案。如果您的应用使用了 Firebase 崩溃报告,那么告诉您一个好消息:Crashlytics 提供了增强的崩溃报告功能,其设置流程与您所熟悉的流程几乎相同,因此升级非常简单:

  1. 更新您的项目的依赖项。
  2. 迁移所有日志调用(如果有)。
  3. 设置手动初始化(如果您用到了这项功能)。

更新项目依赖项

iOS

要更新您应用的 Firebase Crashlytics 依赖项,请在 Crashlytics pod 文件中进行交换,并构建阶段脚本:

  1. 打开您的项目的 Podfile。
  2. 将 Firebase 崩溃报告 pod pod 'Firebase/Crash' 替换为 Firebase Core 和 Crashlytics pod:
    pod 'Firebase/Core'
    pod 'Fabric', '~> 1.7.2'
    pod 'Crashlytics', '~> 3.9.3'
  3. 在您的终端中,导航到您的项目目录并安装 pod:
    pod install
  4. 将 Firebase 崩溃报告构建阶段 "${PODS_ROOT}"/FirebaseCrash/upload-sym 替换为 Crashlytics 构建阶段:
    "${PODS_ROOT}/Fabric/run"
Android

要更新您应用的 Firebase Crashlytics 依赖项,请对您的应用级 build.gradle 进行以下更改:

apply plugin: 'com.android.application'
/* Add the Fabric plugin: */
apply plugin: 'io.fabric'

dependencies {
    // ...

    /* Delete Crash Reporting:
    compile 'com.google.firebase:firebase-crash:11.4.2'

    Add Crashlytics: */
    compile 'com.crashlytics.sdk.android:crashlytics:2.9.1'
}
注意:为了让所有功能正常运行,Crashlytics 需要使用 firebase-core 11.4.2 版或更高版本。

迁移日志

如果您使用了 Firebase 崩溃报告自定义日志,则还必须为 Firebase Crashlytics 更新这些日志:

iOS
Firebase 崩溃报告 Firebase Crashlytics
Objective-C Swift Objective-C 和 Swift
FIRCrashLog CLSLog
FIRCrashLogv CLSLogv
FIRCrashMessage FirebaseCrashMessage CLSLog
FIRCrashNSLog CLSNSLog
FIRCrashNSLogv FirebaseCrashNSLogv CLSNSLogv
Android
Firebase 崩溃报告Firebase Crashlytics
FirebaseCrash.log() Crashlytics.log()
FirebaseCrash.logcat() Crashlytics.log()
FirebaseCrash.report() Crashlytics.logException()

设置手动初始化

与 Firebase 崩溃报告类似,在您将 Crashlytics 添加到您的应用后,Firebase Crashlytics SDK 会立即自动初始化 Crashlytics。如果您采用手动方式初始化报告功能,Crashlytics 也有办法做到这一点:

iOS
  1. 在您的 Info.plist 文件中,使用一个新的键来关闭自动收集功能:
    • 键:firebase_crashlytics_collection_enabled
    • 值:false
  2. 将崩溃报告的初始化调用替换为 Crashlytics 的初始化调用:
    Objective-C
    /* Delete Crash Reporting:
    [FIRCrash crashCollectionEnabled:YES];
    
       Add Crashlytics: */
    [Fabric with:@[[Crashlytics class]]];
    Swift
    /* Delete Crash Reporting:
    Crash.sharedInstance().isCrashCollectionEnabled = true
    
       Add Crashlytics: */
    Fabric.with([Crashlytics.self])
Android
  1. AndroidManifest.xml 文件中的 Firebase 崩溃报告的 meta-data 标记替换为 Crashlytics 中的相应标记:
    <!-- Delete Crash Reporting:
    <meta-data android:name="firebase_crash_collection_enabled" android:value=false />
    
         Add Crashlytics: -->
    <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
  2. 将相关 Activity 中的初始化调用也替换掉:
    /*   Delete Crash Reporting:
    FirebaseCrash.setCrashCollectionEnabled(true);
    
         Add Crashlytics: */
    Fabric.with(this, new Crashlytics());
注意:Crashlytics 一初始化后就会不断报告崩溃,直到用户关闭应用为止。如果您想让用户能够在您初始化 Crashlytics 之后自主选择退出报告功能,则用户必须重启您的应用,之后更改才能生效。

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面