You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

混淆Flutter Android App Bundle后如何正确提交调试符号?

Flutter Android应用混淆后调试符号的区别与正确上传方案

两组符号文件的核心区别

  • 第一组(build\app\intermediates\merged_native_libs\release\out\lib目录下的文件):
    这是Android原生层的调试符号,对应Flutter引擎、第三方原生依赖的底层代码符号,格式完全符合Google Play对「原生调试符号」的要求,用于解析原生C/C++层的崩溃日志。
  • 第二组(build/symbols目录下的.symbols文件):
    这是Flutter Dart代码混淆后的映射符号,专门用来把混淆后的Dart崩溃栈轨迹还原成可读的原始代码,属于Flutter开发者自用的Dart层调试工具,和Google Play要求的原生符号不是一个范畴,所以上传会被拒绝。

提交应用时的正确处理方式

启用代码混淆后,两类符号都需要保留,但上传到Google Play的还是第一组原生调试符号:

  1. 执行混淆构建命令flutter build appbundle --release --obfuscate --split-debug-info=./build/symbols后,依旧从build\app\intermediates\merged_native_libs\release\out\lib目录收集原生符号文件,压缩后上传到Google Play的「上传原生调试符号」功能。
  2. 妥善保存build/symbols下的.symbols文件,当需要解析Dart层的崩溃日志时,用这些文件配合flutter symbolize命令还原栈信息。

内容的提问来源于stack exchange,提问作者under

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:15:44