@ capgo/ 电容- firebase- crashlytics( 电容/电容)
非官方电容插件 火灾基地崩溃[^1]
兼容性
| 插件版本 | 电容版本 | 状态 |
|---|---|---|
| 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 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-firebase-crashlytics` plugin in my project.
如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capgo/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系统
要生成人类可读崩溃报告, Crashlytics 需要您工程的调试符号 (dSYM) 文件 . 下列步骤描述您在构建您的应用程序时如何将 dSYM 文件自动上传到 Firebase :
- 打开您的项目的 Xcode 工作空间, 然后在左侧导航器中选择其项目文件 .
- 从 目标 列表中,选择主构建目标.
- 点击 构建设置 选项卡,然后完成以下步骤,使 Xcode 为您的构建生成 dSYMS .
- 点击 全体,然后查找
debug information format。 。 。 . - 设定 调试信息格式 改为
DWARF with dSYM File为你所有的建筑类型.
- 点击 全体,然后查找
- 点击 构建阶段 选项卡并完成下列步骤:
-
点击 + 键 按钮,然后选择 新建运行脚本阶段。 。 。 .
确定这个新 运行脚本 相位是您的工程的最后一个构建相; 否则 Crashlytics 无法正确处理 dSYMs .
-
扩展新 运行脚本 节.
-
脚本字段(位于 贝壳 根据您的软件包管理器添加运行的脚本 :
可可树:
"${PODS_ROOT}/FirebaseCrashlytics/run"Swift 软件包管理器 :
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run" -
在那个 输入文件 区域,根据您的软件包管理器添加以下文件位置的路径 :
可可树:
${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
启动模板
以下启动模板可供使用:
使用量
import { FirebaseCrashlytics } from '@capgo/capacitor-firebase-crashlytics';
const crash = async () => {
await FirebaseCrashlytics.crash({ message: 'Test' });
};
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',
});
};
const setEnabled = async () => {
await FirebaseCrashlytics.setEnabled({
enabled: true,
});
};
const isEnabled = async () => {
const { enabled } = await FirebaseCrashlytics.isEnabled();
return enabled;
};
const didCrashOnPreviousExecution = async () => {
const { crashed } = await FirebaseCrashlytics.didCrashOnPreviousExecution();
return crashed;
};
const sendUnsentReports = async () => {
await FirebaseCrashlytics.sendUnsentReports();
};
const deleteUnsentReports = async () => {
await FirebaseCrashlytics.deleteUnsentReports();
};
const recordException = async () => {
await FirebaseCrashlytics.recordException({
message: 'This is a non-fatal message.',
});
};
import * as StackTrace from 'stacktrace-js';
const recordExceptionWithStacktrace = async (error: Error) => {
const stacktrace = await StackTrace.fromError(error);
await FirebaseCrashlytics.recordException({
message: 'This is a non-fatal message.',
stacktrace,
});
};
API 密码
crash(...)setCustomKey(...)setUserId(...)log(...)setEnabled(...)isEnabled()didCrashOnPreviousExecution()sendUnsentReports()deleteUnsentReports()recordException(...)getPluginVersion()- 接口
- 类型异名
崩溃(...)
crash(options: CrashOptions) => Promise<void>
强制坠机测试实施.
仅供Android和iOS使用.
| 参数 | 类型 |
|---|---|
options | CrashOptions |
自: 0.1.0 (中文(简体) )
设置 CustomKey (...)
setCustomKey(options: SetCustomKeyOptions) => Promise<void>
设置一个自定义密钥和值,该密钥和值与随后的致命和非致命报告相关.
仅供Android和iOS使用.
| 参数 | 类型 |
|---|---|
options | CustomKeyAndValue |
自: 0.1.0 (中文(简体) )
set 用户(...)
setUserId(options: SetUserIdOptions) => Promise<void>
设置一个与随后的致命和非致命报告相关的用户ID(识别符).
仅供Android和iOS使用.
| 参数 | 类型 |
|---|---|
options | SetUserIdOptions |
自: 0.1.0 (中文(简体) )
日志(...)
log(options: LogOptions) => Promise<void>
添加自定义日志消息, 这些信息会随崩溃数据一同发送, 以给自己更多导致崩溃的事件的背景 .
仅供Android和iOS使用.
| 参数 | 类型 |
|---|---|
options | LogOptions |
自: 0.1.0 (中文(简体) )
设置可启用(...)
setEnabled(options: SetEnabledOptions) => Promise<void>
启用/ 无法自动收集数据 . 该值在应用程序的下一轮运行之前不应用 .
仅供Android和iOS使用.
| 参数 | 类型 |
|---|---|
options | SetEnabledOptions |
自: 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使用.
| 参数 | 类型 |
|---|---|
options | RecordExceptionOptions |
自: 0.1.0 (中文(简体) )
获取 PluginVersion ()
getPluginVersion() => Promise<GetPluginVersionResult>
获取此插件的版本 .
回返情况: Promise<GetPluginVersionResult>
自: 8.0.2 联合国
接口
崩溃选项
| Prop | 类型 | 自兹 |
|---|---|---|
message | string | 0.1.0 (中文(简体) ) |
自定义密钥和 Value
| Prop | 类型 | 自兹 |
|---|---|---|
key | string | 7.1.0 (中文(简体) ) |
value | string | number | boolean | 7.1.0 (中文(简体) ) |
type | 'string' | 'boolean' | 'long' | 'double' | 'int' | 'float' | 7.1.0 (中文(简体) ) |
设置用户选择
| Prop | 类型 | 自兹 |
|---|---|---|
userId | string | 0.1.0 (中文(简体) ) |
日志选项
| Prop | 类型 | 自兹 |
|---|---|---|
message | string | 0.1.0 (中文(简体) ) |
设置可选选项
| Prop | 类型 | 自兹 |
|---|---|---|
enabled | boolean | 0.1.0 (中文(简体) ) |
已启用结果
| Prop | 类型 | 自兹 |
|---|---|---|
enabled | boolean | 0.1.0 (中文(简体) ) |
DidCrash 上一个执行结果
| Prop | 类型 | 自兹 |
|---|---|---|
crashed | boolean | 0.1.0 (中文(简体) ) |
记录例外选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
message | string | 将信息记录为非致命例外. | 0.1.0 (中文(简体) ) |
code | number | 特定出错域内的出错代码 . 请注意: 如果 stacktrace 提供。 仅供iOS使用. | 0.1.0 (中文(简体) ) |
domain | string | 包含错误域的字符串 . 请注意: 如果 stacktrace 提供。 仅供iOS使用. | 0.1.0 (中文(简体) ) |
keysAndValues | CustomKeyAndValue[] | 除应用级自定义密钥外,还有一系列密钥和与非致命例外关联的值. 请注意: 如果 stacktrace 提供. | 7.1.0 (中文(简体) ) |
stacktrace | StackFrame[] | 由 sacktrace.js 生成的堆栈. | 1.1.0 国家 |
堆叠外观
由 stacktrace.js 生成的 Stacktrace 子集.
| Prop | 类型 |
|---|---|
lineNumber | number |
fileName | string |
functionName | string |
获取 PluginVersion 结果
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
version | string | 此插件的语义版本 . | 8.0.2 联合国 |
类型异名
设置自定义关键选项
测试您的执行
给 您可以找到更多关于如何测试火地崩溃处理程序的信息. 除其他外,你会找到如何正确的信息 调整工程的调试设置 在iOS下如何进行 试试看。 。 。 .
如果你得到iOS的模糊的崩溃报告, 请确保你有 初始化崩溃 正确,看一看 本指南如果Crashlytics找不到你的应用程序的dSYM,它提供了一些解决问题的方法.
更改日志
见 变动情况。 。 。 .
许可证
见 自由主义。 。 。 .
贷项
此插件基于 社区火灾基地崩溃 插件 . 感谢所有为这个项目捐款的人!
[^1]: 这个项目不附属于Google LLC或其任何子公司或子公司,也不获得其认可、支持、赞助或批准.