如何手动上传Android混淆映射文件Mapping.txt到Firebase

为什么要上传Mapping文件

  • ProGuard/R8 代码混淆后,崩溃日志将显示无意义的符号(如a.a()
  • mapping.txt提供原始代码与混淆名称的映射关系
  • 未上传mapping文件时,Firebase无法解析崩溃堆栈的真实位置

如果你的打包流程有自动上传mapping文件,则可以不用往下看了,本文介绍的是如何手动上传,因为有些打包场景需要隔离或者无法访问谷歌服务。

手动上传方法

官方唯一推荐的方法是使用Firebase CLI,通过Firebase控制台已无法手动上传。下面简单介绍一下Firebase CLI

Firebase CLI 是 Google 提供的命令行工具,用于管理 Firebase 项目资源。其核心能力包括:

关键特性

  • 跨平台支持:基于 Node.js 开发,支持 Windows/macOS/Linux

  • 集中化管理:通过命令操作数据库、身份验证、云函数等 Firebase 服务

  • 本地模拟测试:内置本地模拟器(Emulator Suite),可在部署前验证配置

  • 自动化部署:一键部署静态资源、云函数、安全规则

安装方法

  1. 通过npm或者Homebrew安装

    shell 复制代码
    npm install -g firebase-tools
    
    brew install firebase-cli:cite
  2. 下载相应安装包

    官网

安装之后登录到相应账号,命令行方式可以使用firebase login,软件方式打开后会跳网页登录。另外,java环境变量要确认准备好。

上传mapping文件

Crashlytics 相关的命令如下:

分为两步

  1. 准备Android resource(XML)

打包的时候会有生成,路径为app/build/generated/crashlytics/res/your_flavor/release/values/com_google_firebase_crashlytics_mappingfileid.xml,如果提示这个文件无效,则可以用Firebase CLI命令行生成,firebase crashlytics:mappingfile:generateid --resource-file=PATH/android_resource.xml

shell 复制代码
//输出
i Updating resource file: PATH/android_source.xml
i successfully updated mapping file id
  1. 跑上传命令

firebase crashlytics:mappingfile:upload --app=Firebase_APP_ID --resource-file=PATH/android_resource.xml PATH/mapping.txt

如果上传成功,将会有如下提示:

shell 复制代码
//输出
i Updating mapping file: PATH/mapping.txt
i successfully updated mapping file

备注:Firebase_APP_ID不是Firebase project id,可以从控制台找或者直接用google-services.json里的mobilesdk_app_id

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui