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

Flutter Web项目Sentry源码映射解析异常求助

Flutter Web Sentry 源码映射失效排查方案

核心检查项

1. 构建环节验证source-maps生成

  • 执行构建命令时必须明确开启source-maps:
    flutter build web --source-maps
    
  • 构建完成后检查build/web目录:确认存在对应.js.map文件(如main.dart.js.map),且.js文件末尾带有//# sourceMappingURL=xxx.js.map注释。

2. 源码映射上传参数一致性

  • 确保pubspec.yml中Sentry配置的release、environment与平台项目版本、环境完全匹配:
    sentry:
      upload_source_maps: true
      release: "your-app-name@1.0.0"
      environment: "production"
    
  • CI/CD上传时,确认指定的org和project参数对应正确的Sentry项目,避免传错目标。

3. Sentry初始化配置匹配

  • setupSentrySameZone方法中,release参数必须和上传源码映射时的版本号完全一致:
    Future<void> setupSentrySameZone() async {
      await Sentry.init(
        (options) {
          options.dsn = '你的DSN地址';
          options.release = 'your-app-name@1.0.0'; // 与上传时的release保持一致
          options.environment = 'production';
        },
      );
    }
    
  • 确认runZonedGuarded和SentryWidget包裹逻辑无遗漏,确保异常能被正确捕获:
    void main() {
      runZonedGuarded(() async {
        await setupSentrySameZone();
        runApp(const SentryWidget(child: MyApp()));
      }, (error, stackTrace) async {
        await Sentry.captureException(error, stackTrace: stackTrace);
      });
    }
    

4. Sentry平台端关联检查

  • 进入项目「Releases」页面,找到对应版本,查看「Source Maps」标签下是否显示已上传的映射文件。
  • 若映射已上传但未生效,在release详情页点击「Reprocess Artifacts」触发重新解析。

5. 部署与浏览器环境验证

  • 确认服务器已正确部署.js.map文件,且可通过浏览器直接访问(如https://你的域名/main.dart.js.map能返回文件内容)。
  • 测试时避免使用浏览器隐私模式,部分隐私模式会禁用source-maps解析。

额外排查点

  • 检查sentry_dart_plugin与sentry_flutter版本是否兼容,版本不匹配可能导致上传失败。
  • CI/CD流程中,确保上传源码映射的步骤在Flutter构建完成后执行,且工作目录指向build/web。

内容的提问来源于stack exchange,提问作者Cyrus the Great

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:02:21