Skip to main content
MoleSignal 使用调试产物还原压缩后的 JavaScript、混淆后的 Dart 或 Android,以及 Android、 iOS 原生堆栈帧。所有调试产物统一通过 /api/v1/debug-artifacts 管理。

选择产物类型

支持原始文件与 gzip 压缩文件。上传文件最大 50 MiB;gzip 解压后最大 256 MiB。

匹配构建标识

MoleSignal 根据 RUM Error 的构建标识选择调试产物: 常见 ABI 别名会自动规范化。例如,arm64-v8aaarch64 会转换为 arm64amd64x64 会转换为 x86_64。十六进制 Debug ID 与 UUID 比较时会忽略大小写、花括号、连字符和 开头的 0x
application_idservicereleasearchitecturedebug_id 必须和产物来自 同一条构建流水线。标识过期或存在歧义时,错误事件仍会保留,但符号化状态会是 missingpartial

Browser 示例

每次构建时,为 serviceversion 设置稳定值:
上传 Source Map 时使用相同标识和实际部署的 Bundle 文件名: 已部署帧 URL 以 /assets/app.8f312.js 结尾时,需要上传 app.8f312.js.map。所有按需加载 Chunk 的 Source Map 都要上传,不能只上传主 Bundle。

在页面中上传

1

在构建中启用 Source Map

在生产构建中生成外部 Source Map。如果安全策略要求源码保持私有,请不要把 Source Map 部署到公网。
2

打开上传页面

进入 RUM → RUM 设置 → Source Maps 与 Symbols,然后点击 上传调试产物
3

填写构建标识

选择产物类型与平台,填写完全一致的应用、服务和版本。移动端产物还要填写架构与 Debug ID, 然后选择生成的文件。
4

验证符号化

从该版本发送一个错误,打开 RUM → 错误,确认堆栈已显示原始源码位置。

准备 Release 产物

使用实际部署的 Browser Bundle 生成外部 Source Map。源码不允许公开时,仅把 .map 文件 保存在私有发布流水线中。构建 Flutter Web 时启用 Source Map:
上传 main.dart.js.map 时使用 kind=javascript_sourcemapplatform=flutterarchitecture=javascript

从 CI 上传

使用具有 streams.configure 权限的管理 Token。不得把该 Token 写入 Browser 或移动应用, 也不得使用公开的 msrum_ Client Token 管理调试产物。
只有需要创建通用回退产物时,才将 architecturedebug_id 留空。移动端使用精确构建标识 可以避免匹配歧义。 通过 GET /api/v1/debug-artifacts 列出产物,可按 application_idservicekindplatform 筛选。通过 DELETE /api/v1/debug-artifacts/{id} 删除单个产物。列出产物需要 streams.read,上传与删除需要 streams.configure

发布检查清单

  • 保留实际部署二进制或 Bundle 生成的产物。
  • 在任何错误可能被记录之前设置不可变的 SDK 版本。
  • 保持应用、服务、版本、架构与 Debug ID 和当前构建一致。
  • 上传全部 Web Chunk Source Map 与所有已发布移动端架构的产物。
  • 只在发布流水线中保存管理 Token。
  • 部署后发送一个受控错误,并确认堆栈帧已生成还原后的 original_* 字段。

Browser RUM SDK

配置 Browser 应用、服务与版本标识。

Flutter App RUM SDK

配置 Flutter 构建标识与错误采集。
最后修改于 2026年8月5日