如何手动上传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

相关推荐
SRC_BLUE_1728 分钟前
NSSCTF - Web | 【第五空间 2021】pklovecloud
android·前端
tq10862 小时前
学习Hilt注解
android
2501_915921432 小时前
iOS 应用代上架流程,多工具组合与使用 开心上架 跨平台自动化上传指南
android·ios·小程序·uni-app·自动化·cocoa·iphone
日日行不惧千万里3 小时前
2025最新仿默往 IM 即时通讯系统源码(PC + Web + iOS + Android)完整版发布!
android·ios
歪歪1003 小时前
React Native开发Android&IOS流程完整指南
android·开发语言·前端·react native·ios·前端框架
雪芽蓝域zzs3 小时前
uniapp 修改android包名
android·uni-app
用户2018792831673 小时前
厨房里的协程大冒险:launch与async的烹饪之旅
android
用户2018792831673 小时前
浅析协程与挂起函数实现原理
android
木易士心4 小时前
Android Handler 机制原理详解
android·app
用户2018792831674 小时前
CoroutineDispatcher的"自由精灵" - Dispatchers.Unconfined
android