应用监控 啄木鸟 SDK

App 崩了、接口挂了、某个机型白屏 —— 用户不会来告诉你,他只是卸载。 「啄木鸟」接进工程之后,这些会自己出现在看板里,带着堆栈、机型和出错前的操作过程。

崩溃与错误

原生崩溃、JVM/OC 异常、ANR、JS 错误、接口失败。 带完整堆栈 —— release 包传一次符号表就能还原成源码行号。

设备与版本分布

哪些机型、哪个系统版本、哪个 App 版本出问题最多。 ⚠️ 设备信息默认要用户同意隐私政策后才上报。

自定义事件与转化

埋一行 track() 记业务事件,再配上转化目标与漏斗 —— 能看到转化率,以及「在哪一步掉的」。

七端一个 ID

Web / 小程序 / iOS / Android / Flutter / React Native / Unity。 上报到同一个应用 ID,数据在同一个看板里。

网页与小程序直接引用脚本,不用下载;原生 App 下载对应的包接进工程即可。 接入步骤见下面每个卡片的「接入说明」,或看 接入文档

网页和小程序不在这一页 —— 它们不用下载,和网站统计代码一样是引一个脚本, 接入都在 接入文档 里。这一页只放要下载的原生端。

🍎iOS 1.0.0

Swift 实现。崩溃时只落盘不发网络,下次启动补报 —— 进程正在死亡时网络请求发不出去。

Swift 5.9+iOS 13+单文件接入
v1.0.0更新于 2026-08-04
更新日志
  • 信号与 NSException 崩溃捕获
  • 崩溃落盘 + 下次启动补报
  • 符号表还原调用链
  • 操作轨迹记录

🤖Android 1.0.0

捕获未捕获异常、ANR 与 C/C++ 层崩溃,处理完把控制权还给系统 —— 不会让你在 Google Play 后台丢掉崩溃数据。

AARminSdk 21四个 ABI 的 .so 已编好不用装 NDK
v1.0.0更新于 2026-08-04
更新日志
  • 未捕获异常与 ANR 监测
  • 崩溃落盘 + 下次启动补报
  • R8 反混淆还原调用链(含内联)
  • 操作轨迹记录

SDK 包里只有一个 .aar —— 类、四个 ABI 的原生库、 混淆规则、权限声明都在里面,接进工程就这一个文件。 示例是一个把每个接口都用了一遍的 Activity,接完之后拿它验; 源码给要审计或自己定编译参数的人。

🐦Flutter 1.0.0

Dart 异常与 Promise 拒绝自动捕获,路由变化记进操作轨迹。原生崩溃仍由平台 SDK 负责 —— Dart 层感知不到进程已经在死了。

Flutter 3.10+Dart 3.0+Android + iOS
v1.0.0更新于 2026-08-05
更新日志
  • Dart 异常与 Promise 拒绝捕获
  • 路由 observer 自动记录页面轨迹
  • 渠道归因结果读取
  • 原生崩溃由平台 SDK 捕获

⚛️React Native 1.0.0

JS 未捕获异常与未处理的 Promise 拒绝自动上报,JS 堆栈原样透传。红屏不会被吞掉。

RN 0.70+Android + iOS无第三方依赖
v1.0.0更新于 2026-08-05
更新日志
  • JS 未捕获异常与 unhandledrejection
  • JS 堆栈透传,不被原生栈覆盖
  • 红屏不被吞掉
  • 渠道归因结果读取

🎮Unity 1.0.0

C# 未捕获异常与 Assert 自动上报,含后台线程抛出的。原生崩溃由平台 SDK 捕获。IL2CPP 构建需上传符号表才能还原堆栈。

Unity 2021.3+Android + iOSMono / IL2CPP
v1.0.0更新于 2026-08-05
更新日志
  • C# 异常与 Assert 捕获(含后台线程)
  • 场景切换记入操作轨迹
  • 渠道归因结果读取
  • IL2CPP 符号表还原
正在加载接入说明…

关于符号文件的安全

Source map、mapping、符号表都等价于源代码。它们只用于还原堆栈, 不会被任何接口返回,也不存放在任何可公开访问的目录下。