如何在Unity C#中获取Firebase Crashlytics崩溃行号信息?
Firebase Crashlytics Unity C# 行号显示问题解决
Firebase Crashlytics本身支持显示Unity C#代码的行号,无需额外集成SDK,但需要正确配置符号文件上传和构建设置。针对你遇到的iOS及Android构建问题,按以下步骤排查:
一、iOS 构建配置要点
- 确保上传dSYM文件:Unity构建iOS项目后,Xcode编译生成的dSYM文件是符号化崩溃日志的核心。检查Firebase控制台Crashlytics设置,确认已开启自动上传dSYM;手动构建时需查看Xcode项目的Build Phases中是否存在
Upload Debug Symbols to Firebase脚本。 - Unity 构建设置:在Unity
Player Settings的iOS平台下,调试阶段开启Development Build并勾选Script Debugging;发布构建时避免过度剥离符号,将Managed Stripping Level设为Low或Medium,关闭不必要的代码剥离选项。 - 本地符号化验证:若控制台日志仍无行号,可通过Xcode
Organizer找到对应归档,右键选择Show in Finder获取dSYM文件夹,用atos命令手动解析崩溃地址。
二、iOS/Android 通用Unity配置
- 更新Firebase SDK:使用最新版本的Firebase Crashlytics Unity插件,旧版本可能存在符号上传兼容性问题。
- 启用符号上传:在Unity的
Firebase Crashlytics设置面板中勾选Upload Symbols,插件会在构建时自动处理符号文件上传。 - Android混淆规则:Android构建启用ProGuard/R8时,添加Firebase相关混淆规则,防止符号被剥离,并确保将mapping.txt文件上传至Firebase控制台。
三、你的崩溃日志解析
你提供的iOS非致命异常日志:
Non-fatal Exception: InvalidOperationException 0 ??? 0x0 ThrowIfCheckDependenciesRunning (Firebase.FirebaseApp) 1 ??? 0x0 GetInstance (Firebase.FirebaseApp) 2 ??? 0x0 get_DefaultInstance (Firebase.FirebaseApp) 3 ??? 0x0 get_DefaultInstance (Firebase.RemoteConfig.FirebaseRemoteConfig) 4 ??? 0x0 FetchRemoteConfig (FirebaseServer) 5 ??? 0x0 ForegroundPostSynced () 6 ??? 0x0 OnSuccessEmp () 7 ??? 0x0 OnSuccessEmp () 8 ??? 0x0 OnSuccess 9 ??? 0x0 OnSuccess
当前无行号是因为缺少对应符号文件,按上述步骤配置后,Crashlytics会自动符号化日志,显示FirebaseServer.cs等脚本的具体行号,帮助定位触发InvalidOperationException的代码(大概率是Firebase依赖未初始化完成就调用了RemoteConfig)。
内容的提问来源于stack exchange,提问作者docchang
相关产品推荐
相关产品推荐

