更新记录
1.0.0(2026-09-10) 下载此版本
Sensors Wave iOS 崩溃捕获+触发通道 插件
Changelog
Sensors Wave iOS 崩溃捕获+触发通道(sensorswave-uniappx 配套插件)的所有显著变更均记录于此文件。 格式参考 Keep a Changelog, 版本号遵循 Semantic Versioning,与主插件同步发版。
[1.0.0] - 2026-09-10
新增
- 首个版本:iOS fatal 触发通道(
triggerIosTestCrash真机真实NSException派发,SwTriggerHybrid混编实现)。 - 捕获链迁入本插件:
SwTriggerHookProxy启动安装NSSetUncaughtExceptionHandler(+5s/+20s 复核夺回)+ 崩溃线程 Foundation 文件落盘(Library/sw_crash_records/,容量 10 条 / TTL 7 天)。 - 原生读取面
pullPendingCrashRecords/ackPendingCrashRecords:主插件补发侧合并文件记录、写成功才 ack,记录不丢不重。 - 模拟器验证通道
simulateIosTestCrash:Rosetta 基座下直调同一 C handler,全链(落盘→重启补发)可先模拟器验证再上真机。 - 触发派发改异步(
DispatchQueue.global().asyncAfter+0.5s),对齐姊妹插件实测模式。
平台兼容性
uni-app x(4.0)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | √ | √ |
Sensors Wave iOS 崩溃捕获+触发通道(sensorswave-uniappx 配套插件)
sensorswave-uniappx 数据采集 SDK 的 iOS 端
fatal 崩溃捕获原生面。业务工程无需直接安装或调用本插件——在 HBuilderX 中导入主插件时,
本插件作为其 uni_modules.dependencies 依赖自动跟随安装。
为什么存在这个插件
iOS 端 fatal 崩溃(NSException)的捕获必须在原生层完成:NSSetUncaughtExceptionHandler
安装、崩溃线程上同步落盘,JS 世界(uts2js)无法触及。而 uni-app x 编译器的路由规则是
「有 app-js 目录的插件,原生实现永不编译进基座/正式包」——主插件必须保留 app-js
(鸿蒙生产入口 + iOS 标准基座可用性),因此这段原生代码只能以独立插件(仅 utssdk/app-ios、
无 app-js、无根入口)形态存在,才能被编译为原生 framework 打进自定义基座与正式包。
功能
捕获(生产链路,自动生效)
SwTriggerHookProxy在applicationDidFinishLaunching安装NSSetUncaughtExceptionHandler(混编SwCaptureHybrid完成 C 函数指针注册,+5s/+20s 复核夺回,防引擎初始化窗口被抢注);- NSException 未捕获时,在崩溃线程内以 Foundation 同步落盘一条崩溃记录到
<Home>/Library/sw_crash_records/<13位毫秒>_<id>.json(进程将死,只做最小同步写); - 记录契约与主插件
CrashRecord对齐:{"id":"<ack 键>","type":"<异常类名>","message":"..","stack":"<callStackSymbols>","time":<13位毫秒>}; - 记录容量上限 10 条、有效期 7 天,超限淘汰最旧、超期自动清理。
补发(由主插件驱动)
下次启动主插件经原生代理调用 pullPendingCrashRecords() 拉取记录、合并进其补发存储并上报,
成功后 ackPendingCrashRecords(ids) 删除已补发文件。本插件不主动上报。
触发(demo 验证通道,请勿在生产调用)
triggerIosTestCrash(name, reason):真机真实NSException派发(异步 +0.5s 脱离桥调用栈);simulateIosTestCrash(name, reason):模拟器 Rosetta 基座可用(真实 raise 机制损坏), 直调注册给运行时的同一 C handler,完整走「落盘 → 链式 → abort」。
平台支持
仅 App-iOS(自定义基座 / 正式包)。无 JS 实现(app-js 缺失是 uts 原生代理路由与基座收录的
前提。
Android / 鸿蒙的崩溃采集在主插件内实现,不经本插件。
版本
与主插件 sensorswave-uniappx 同步发版,见 changelog.md。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 4
赞赏 0
下载 12586883
赞赏 1949
赞赏
京公网安备:11010802035340号