能否将Flutter混淆映射文件上传至Firebase Crashlytics?
Flutter混淆符号文件上传Firebase Crashlytics方法
当然可以把符号文件上传到Firebase Crashlytics,让控制台自动反混淆崩溃堆栈,不用每次手动执行flutter symbolize命令。下面分Android和iOS分别说操作步骤:
Android 端操作
- 开启混淆后,符号文件
mapping.txt会自动生成在build/outputs/mapping/release/目录下 - 两种上传方式:
- 自动上传(推荐):在
android/app/build.gradle里开启自动上传配置,以后打包时会自动上传:
执行android { buildTypes { release { minifyEnabled true shrinkResources true // 开启Crashlytics自动上传mapping文件 firebaseCrashlytics { mappingFileUploadEnabled true } } } }flutter build apk --release打包时,符号文件会自动同步到Firebase - 手动上传:如果自动上传失败,用Firebase CLI执行命令:
firebase crashlytics upload-symbols --android --app=你的APP_ID --mapping-file=build/outputs/mapping/release/mapping.txt
- 自动上传(推荐):在
iOS 端操作
- 混淆后的dSYM符号包默认存放在
build/ios/archive/[你的APP名称].xcarchive/dSYMs/目录下 - 两种上传方式:
- 自动上传(推荐):确保Xcode的
Build Phases里已经添加了Upload Debug Symbols to Firebase脚本(Flutter集成Firebase时一般会自动配置),执行flutter build ipa --release打包后,会自动上传dSYM到Firebase - 手动上传:用Firebase CLI执行命令:
firebase crashlytics upload-symbols --ios --app=你的APP_ID --dsym=build/ios/archive/[你的APP名称].xcarchive/dSYMs/
- 自动上传(推荐):确保Xcode的
注意点
- 先确保Firebase CLI已经登录(执行
firebase login完成登录),且项目配置正确 - 符号文件必须和对应的混淆版本包完全匹配,不然没法正确反混淆
- 如果控制台还是显示混淆堆栈,去Firebase Crashlytics控制台的「设置」-「符号文件」里检查是否上传成功
内容的提问来源于stack exchange,提问作者Robert Apikyan
相关产品推荐
相关产品推荐

