Kotlin多平台移动端项目Firebase Crashlytics的集成实现方法咨询
Kotlin多平台移动端项目Firebase Crashlytics接入实操指南
安卓端配置核心要点
- google-services.json正确放置位置:需存放至安卓专属模块对应构建变体的资源根目录下。以常见的
androidApp安卓模块为例,调试构建的文件路径为androidApp/src/debug/google-services.json,正式构建的文件路径为androidApp/src/release/google-services.json。不要将该文件直接放在项目根目录,也不要放到跨端公共共享模块的资源路径下,放错位置会直接触发编译报错,提示找不到对应应用配置ID。如果项目存在多渠道、多构建变体的场景,每个变体目录下都要放置对应包名的独立配置文件,不要单文件通配所有构建场景。 - 安卓侧依赖配置归属:所有和Crashlytics安卓实现绑定的依赖、插件配置,全部需要配置在安卓专属模块的构建脚本中,不要将这类依赖放入多平台公共模块。具体配置项包括:
- 项目根构建脚本中引入对应的插件类路径,在安卓模块的构建脚本中依次应用谷歌服务插件、Crashlytics插件
- 安卓模块内引入Crashlytics对应的ktx扩展依赖,满足业务逻辑里手动上报自定义事件的需求
- 禁止将安卓专属的Firebase SDK依赖塞入公共共享模块:这类依赖是安卓端独有的,放到公共模块会导致iOS端打包时出现符号冲突、类找不到的编译错误。公共模块仅需保留跨端能力的expect抽象声明即可。
iOS端Crashlytics集成入门步骤
- 第一步:完成基础依赖安装。在iOS端的Podfile中添加
Firebase/Crashlytics依赖,执行安装命令完成SDK集成,不需要额外引入Analytics等无关组件,减少包体积冗余。 - 第二步:配置符号化上传脚本。在Xcode的构建阶段中添加Crashlytics对应的dSYM上传脚本,脚本路径不要写错,否则打包后收集到的崩溃日志会因为无法符号化,完全看不到具体的堆栈信息。
- 第三步:完成启动初始化。在iOS原生App的启动入口(也就是应用生命周期的
didFinishLaunchingWithOptions方法中)调用Firebase初始化方法,完成Crashlytics实例的绑定。注意要和KMP公共模块做桥接适配:公共模块中定义的手动上报、用户标识设置等expect方法,在iOS专属模块中编写actual实现,直接调用Firebase iOS SDK的对应接口,让上层业务代码不需要写平台分支逻辑就能触发上报。 - 实操踩坑提醒:不要把Crashlytics的初始化逻辑放到KMP公共模块的启动流程中,必须在原生启动入口先完成初始化,否则冷启动阶段发生的崩溃会完全丢失采集。
跨端配置通用原则
- 多平台公共共享模块不要直接引入任何Firebase的实体SDK依赖,仅保留跨端通用能力的抽象定义即可;所有平台专属的SDK初始化、依赖引入逻辑,分别放在对应平台的专属模块中实现,从根源避免双端依赖耦合问题。
内容的提问来源于stack exchange,提问作者Jhonata Ávila
相关产品推荐
相关产品推荐

