@capacitor-firebase/crashlytics

中文文档
8.6.0发布于 2026/10/31Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 27.1万

Android和iOS上的Firebase Crashlytics的电容插件.

中文使用文档
文档目录42 节
  1. 使用大小写
  2. 兼容性
  3. 指南
  4. 安装
  5. 机器人
  6. iOS系统
  7. 配置
  8. 演示
  9. 启动模板
  10. 使用量
  11. 强制测试崩溃
  12. 记录非致命例外
  13. 在崩溃报告上添加上下文
  14. 启用或禁用自动数据收集
  15. 检查应用程序在上次执行时是否崩溃
  16. 管理未发送的崩溃报告
  17. API 密码
  18. 崩溃(...)
  19. 设置 CustomKey (...)
  20. set 用户(...)
  21. 日志(...)
  22. 设置可启用(...)
  23. 已启用
  24. 先前的崩溃执行 ()
  25. 发送未经同意的报告( )
  26. 删除未经同意的报告( )
  27. 记录例外(...)
  28. 接口
  29. 类型异名
  30. 测试您的执行
  31. 财务问题
  32. 这个插件在网络上工作吗 ?
  33. 我怎么能测试我的崩溃症?
  34. 我怎么报告JavaScript错误?
  35. 为什么我的iOS崩溃报告不能读取?
  36. 我能在用户同意之前禁用崩溃报告吗?
  37. 我能用这个插件吗? 有Ionic、React、Vue或Angular?
  38. 相关插件
  39. 通讯
  40. 更改日志
  41. 许可证
  42. 贷项

电容火基崩溃处理插件

非官方电容插件 火灾基地崩溃[^1]

使用大小写

Firebase Crashlytics插件一般用于监控一个应用在生产中的稳定性,例如:

  • 崩溃报告:从Android和iOS的应用程序中收集崩溃报告,并在Firebase Console中检查.
  • 非致命错误跟踪: 记录处理的例外情况 recordException(...),包括由tacktrace.js生成的JavaScript堆栈痕迹.
  • 调试上下文: 将自定义密钥,日志信息,以及用户ID附加到您的报告上,以使崩溃更容易被复制.
  • 遵守隐私:在运行时启用或禁用自动数据收集,例如在用户同意后.

兼容性

插件版本电容版本状态
8.x.x (英语)>=8.x.x积极支持
7.x.x (中文(简体) )7.x.x (中文(简体) )折旧
6.x.x (中文(简体) )6.x.x (中文(简体) )折旧
5.x.x (中文(简体) )5.x.x (中文(简体) )折旧
1.x.x (中文(简体) )4.x.x (中文(简体) )折旧

指南

安装

你可以用我们的 AI 辅助设置 以安装插件. 添加数据 超级技能 至您的 AI 工具,使用以下命令:

npx skills add capawesome-team/skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capacitor-firebase/crashlytics` plugin in my project.

如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capacitor-firebase/crashlytics
npx cap sync

如果您还没有将 Firebase 添加到您的项目中(机器人 编号 : iOS系统) (中文(简体) ).

机器人

崩溃分解插件

首先,将 Crashlytics Gradle 插件的依赖性添加到您的根级( 项目级) Gradle 文件(<project>/build.gradle:

buildscript {
    dependencies {
+       // Add the dependency for the Crashlytics Gradle plugin
+       classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
    }
}

将 Crashlytics Gradle 插件添加到您的模块( 应用级别) Gradle 文件( 通常是) <project>/<app-module>/build.gradle:

apply plugin: 'com.google.firebase.crashlytics'

变量

如果需要, 您可以在您的应用程序中定义以下工程变量 variables.gradle 要更改依赖的默认版本的文件 :

  • $firebaseCrashlyticsVersion 版本 com.google.firebase:firebase-crashlytics (默认 : 20.0.3(中文(简体) )

如果您在工程中遇到其它插件的依赖性冲突, 这会有所帮助 .

iOS系统

Swift 软件包管理器

在您的 capacitor.config.json (或 capacitor.config.ts) 避免 SwiftPM 软件包识别相撞数字 :

{
  "experimental": {
    "ios": {
      "spm": {
        "packageOptions": {
          "@capacitor-firebase/crashlytics": {
            "symlink": true
          }
        }
      }
    }
  }
}

请注意目标 packageOptions 支持需要控制器 CLI 8.4.0+ (中文(简体) )。 。 。 .

dSYM 上传

要生成人类可读崩溃报告, Crashlytics 需要您工程的调试符号 (dSYM) 文件 . 下列步骤描述您在构建您的应用程序时如何将 dSYM 文件自动上传到 Firebase :

  1. 打开您的项目的 Xcode 工作空间, 然后在左侧导航器中选择其项目文件 .
  2. 从 目标 列表中,选择主构建目标.
  3. 点击 构建设置 选项卡,然后完成以下步骤,使 Xcode 为您的构建生成 dSYMS .
    1. 点击 全体,然后查找 debug information format。 。 。 .
    2. 设定 调试信息格式 改为 DWARF with dSYM File 为你所有的建筑类型.
  4. 点击 构建阶段 选项卡并完成下列步骤:
    1. 点击 + 键 按钮,然后选择 新建运行脚本阶段。 。 。 .

      确定这个新 运行脚本 相位是您的工程的最后一个构建相; 否则 Crashlytics 无法正确处理 dSYMs .

    2. 扩展新 运行脚本 节.

    3. 脚本字段(位于 贝壳 根据您的软件包管理器添加运行的脚本 :

      可可树:

      "${PODS_ROOT}/FirebaseCrashlytics/run"
      

      Swift 软件包管理器 :

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
      
    4. 在那个 输入文件 区域,根据您的软件包管理器添加以下文件位置的路径 :

      可可树:

      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
      
      $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
      

      Swift 软件包管理器 :

      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
      
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
      
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
      
      $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
      
      $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
      

      如果你有的话 ENABLE_USER_SCRIPT_SANDBOXING=YES 财务报告和审定财务报表 ENABLE_DEBUG_DYLIB=YES 在您的项目构建设置中,还包括:

      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
      

配置

此插件不需要配置 .

演示

这里有一个实例: robingenz/电容器-火力基地-插座-demo

启动模板

以下启动模板可供使用:

使用量

以下例子显示如何强制测试崩溃,记录非致命例外,在崩溃报告上添加上下文,管理自动数据收集,以及处理未发送的报告. 所有方法只能在Android和iOS上使用.

强制测试崩溃

强制崩溃测试您的崩溃分析执行 :

import { FirebaseCrashlytics } from '@capacitor-firebase/crashlytics';

const crash = async () => {
  await FirebaseCrashlytics.crash({ message: 'Test' });
};

记录非致命例外

将处理过的错误记录为非致命报告 。 也可以附加 JavaScript 堆栈跟踪 堆栈跟踪.js数字 :

import { FirebaseCrashlytics } from '@capacitor-firebase/crashlytics';
import * as StackTrace from 'stacktrace-js';

const recordException = async () => {
  await FirebaseCrashlytics.recordException({
    message: 'This is a non-fatal message.',
  });
};

const recordExceptionWithStacktrace = async (error: Error) => {
  const stacktrace = await StackTrace.fromError(error);
  await FirebaseCrashlytics.recordException({
    message: 'This is a non-fatal message.',
    stacktrace,
  });
};

在崩溃报告上添加上下文

设置自定义密钥,一个用户ID,或日志中与后续的致命和非致命报告相关的消息. 这给你更多导致坠机事件的背景:

import { FirebaseCrashlytics } from '@capacitor-firebase/crashlytics';

const setCustomKey = async () => {
  await FirebaseCrashlytics.setCustomKey({
    key: 'page',
    value: 'home',
    type: 'string',
  });
};

const setUserId = async () => {
  await FirebaseCrashlytics.setUserId({
    userId: '123',
  });
};

const log = async () => {
  await FirebaseCrashlytics.log({
    message: 'Test',
  });
};

启用或禁用自动数据收集

控制崩溃者是否自动收集数据 。 该值在应用程序的下一轮运行之前不应用 。 检查当前设置 isEnabled() 只在 iOS 上可用 :

import { FirebaseCrashlytics } from '@capacitor-firebase/crashlytics';

const setEnabled = async () => {
  await FirebaseCrashlytics.setEnabled({
    enabled: true,
  });
};

const isEnabled = async () => {
  const { enabled } = await FirebaseCrashlytics.isEnabled();
  return enabled;
};

检查应用程序在上次执行时是否崩溃

查找应用程序在上次运行中是否崩溃, 例如要向用户显示反馈对话框 :

import { FirebaseCrashlytics } from '@capacitor-firebase/crashlytics';

const didCrashOnPreviousExecution = async () => {
  const { crashed } = await FirebaseCrashlytics.didCrashOnPreviousExecution();
  return crashed;
};

管理未发送的崩溃报告

如果自动数据收集被禁用,您可以决定是否应当在下次启动时上传未发送的报告,或者从设备上删除:

import { FirebaseCrashlytics } from '@capacitor-firebase/crashlytics';

const sendUnsentReports = async () => {
  await FirebaseCrashlytics.sendUnsentReports();
};

const deleteUnsentReports = async () => {
  await FirebaseCrashlytics.deleteUnsentReports();
};

API 密码

崩溃(...)

crash(options: CrashOptions) => Promise<void>

强制坠机测试实施.

仅供Android和iOS使用.

参数类型
optionsCrashOptions

自: 0.1.0 (中文(简体) )


设置 CustomKey (...)

setCustomKey(options: SetCustomKeyOptions) => Promise<void>

设置一个自定义密钥和值,该密钥和值与随后的致命和非致命报告相关.

仅供Android和iOS使用.

参数类型
optionsCustomKeyAndValue

自: 0.1.0 (中文(简体) )


set 用户(...)

setUserId(options: SetUserIdOptions) => Promise<void>

设置一个与随后的致命和非致命报告相关的用户ID(识别符).

仅供Android和iOS使用.

参数类型
optionsSetUserIdOptions

自: 0.1.0 (中文(简体) )


日志(...)

log(options: LogOptions) => Promise<void>

添加自定义日志消息, 这些信息会随崩溃数据一同发送, 以给自己更多导致崩溃的事件的背景 .

仅供Android和iOS使用.

参数类型
optionsLogOptions

自: 0.1.0 (中文(简体) )


设置可启用(...)

setEnabled(options: SetEnabledOptions) => Promise<void>

启用/ 无法自动收集数据 . 该值在应用程序的下一轮运行之前不应用 .

仅供Android和iOS使用.

参数类型
optionsSetEnabledOptions

自: 0.1.0 (中文(简体) )


已启用

isEnabled() => Promise<IsEnabledResult>

返回是否启用自动数据收集.

仅供iOS使用.

回返情况: Promise<IsEnabledResult>

自: 0.1.0 (中文(简体) )


先前的崩溃执行 ()

didCrashOnPreviousExecution() => Promise<DidCrashOnPreviousExecutionResult>

返回应用程序在上次执行中是否崩溃 .

仅供Android和iOS使用.

回返情况: Promise<DidCrashOnPreviousExecutionResult>

自: 0.1.0 (中文(简体) )


发送未经同意的报告( )

sendUnsentReports() => Promise<void>

在下次启动时将任何未发送的报告上传到崩溃分析 .

当自动数据收集被启用时,崩溃器会在启动时自动上传报告.

仅供Android和iOS使用.

自: 0.1.0 (中文(简体) )


删除未经同意的报告( )

deleteUnsentReports() => Promise<void>

删除设备上任何未发送的报告.

仅供Android和iOS使用.

自: 0.1.0 (中文(简体) )


记录例外(...)

recordException(options: RecordExceptionOptions) => Promise<void>

记录一份非致命报告 发送到Crashlytics.

仅供Android和iOS使用.

参数类型
optionsRecordExceptionOptions

自: 0.1.0 (中文(简体) )


接口

崩溃选项

Prop类型自兹
messagestring0.1.0 (中文(简体) )

自定义密钥和 Value

Prop类型自兹
keystring7.1.0 (中文(简体) )
valuestring | number | boolean7.1.0 (中文(简体) )
type'string' | 'boolean' | 'long' | 'double' | 'int' | 'float'7.1.0 (中文(简体) )

设置用户选择

Prop类型自兹
userIdstring0.1.0 (中文(简体) )

日志选项

Prop类型自兹
messagestring0.1.0 (中文(简体) )

设置可选选项

Prop类型自兹
enabledboolean0.1.0 (中文(简体) )

已启用结果

Prop类型自兹
enabledboolean0.1.0 (中文(简体) )

DidCrash 上一个执行结果

Prop类型自兹
crashedboolean0.1.0 (中文(简体) )

记录例外选项

Prop类型说明自兹
messagestring将信息记录为非致命例外.0.1.0 (中文(简体) )
codenumber特定出错域内的出错代码 . 请注意: 如果 stacktrace 提供。 仅供iOS使用.0.1.0 (中文(简体) )
domainstring包含错误域的字符串 . 请注意: 如果 stacktrace 提供。 仅供iOS使用.0.1.0 (中文(简体) )
keysAndValuesCustomKeyAndValue[]除应用级自定义密钥外,还有一系列密钥和与非致命例外关联的值. 请注意: 如果 stacktrace 提供.7.1.0 (中文(简体) )
stacktraceStackFrame[]由 sacktrace.js 生成的堆栈.1.1.0 国家

堆叠外观

由 stacktrace.js 生成的 Stacktrace 子集.

Prop类型
lineNumbernumber
fileNamestring
functionNamestring

类型异名

设置自定义关键选项

CustomKeyAndValue

测试您的执行

给 您可以找到更多关于如何测试火地崩溃处理程序的信息. 除其他外,你会找到如何正确的信息 调整工程的调试设置 在iOS下如何进行 试试看。 。 。 .

如果你得到iOS的模糊的崩溃报告, 请确保你有 初始化崩溃 正确,看一看 本指南如果Crashlytics找不到你的应用程序的dSYM,它提供了一些解决问题的方法.

财务问题

这个插件在网络上工作吗 ?

不,插件方法只在Android和iOS上可用. Firebase Crashlytics本身不提供Web SDK,因此崩溃报告仅限于本土平台.

我怎么能测试我的崩溃症?

打电话 crash(...) 方法强迫测试崩溃 并证实它出现在火地控制台上 注意报告通常在下一个应用程序启动时发送. 关于测试的更多信息,包括如何调整项目在iOS上的调试设置,可在 测试您的执行 节.

我怎么报告JavaScript错误?

使用 recordException(...) 记录非致命报告的方法。 您可以通过堆栈跟踪生成的堆栈跟踪. js通过 stacktrace 在 Firebase 控制台中获取可读 JavaScript 堆栈痕迹。 记住在iOS上 code, (中文(简体) ), domain 财务报告和审定财务报表 keysAndValues 如果一个选项 stacktrace 提供.

为什么我的iOS崩溃报告不能读取?

Crashlytics需要您的项目调试符号(dSYM)文件来生成iOS上的可读崩溃报告. 继续走 dSYM 上传 当您构建您的应用程序时, 将自动上传 dSYM 文件到 Firebase .

是的,用那个 setEnabled(...) 在运行时启用或禁用自动数据收集的方法。 注意该值在app的下一轮运行前不适用. 然后可以使用 sendUnsentReports() 或者说 deleteUnsentReports() 以决定尚未上传的报告会发生什么.

我能用这个插件吗? 有Ionic、React、Vue或Angular?

是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.

通讯

随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .

更改日志

见 变动情况。 。 。 .

许可证

见 自由主义。 。 。 .

贷项

此插件基于 社区火灾基地崩溃 插件 . 感谢所有为这个项目捐款的人!

[^1]: 这个项目不附属于Google LLC或其任何子公司或子公司,也不获得其认可、支持、赞助或批准.

版本与发布记录

@capacitor-firebase/crashlytics 共发布 51 个版本,首次发布于 2022/03/20;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.6.0latest2026/10/319 天前
8.5.22026/09/171 个月前
8.5.12026/09/022 个月前
8.5.02026/08/312 个月前
8.4.02026/08/122 个月前
8.3.02026/06/045 个月前

其他发布通道:dev → 7.0.0-dev.1765887457。

关于 @capacitor-firebase/crashlytics 的常见问题

@capacitor-firebase/crashlytics 是什么?

Android和iOS上的Firebase Crashlytics的电容插件.

如何安装 @capacitor-firebase/crashlytics?

在项目目录运行 npm install @capacitor-firebase/crashlytics,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capacitor-firebase/crashlytics 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capacitor-firebase/crashlytics 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capacitor-firebase/crashlytics 可以商用吗?

@capacitor-firebase/crashlytics 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@capacitor-firebase/crashlytics 的下载量有多少?

根据 npm 官方下载统计,@capacitor-firebase/crashlytics 在 2026/10/09 – 2026/11/07 这 30 天内被下载 270,798 次,日均约 9,027 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capacitor-firebase/crashlytics 还在维护吗?

最新版本 8.6.0 发布于 2026/10/31(9 天前);至今共发布 51 个版本,其中过去 12 个月发布了 13 个;首次发布于 2022/03/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。