Skip to content

NoCompile v0.2.6

Choose a tag to compare

@wangwanjie wangwanjie released this 20 Oct 03:50
· 8 commits to main since this release

NoCompile 0.2.6

变更

  • 多设备切换与补推:每台设备接入一个 App,只向当前选中的设备推送热重载;切换设备或 App 重新运行后,自动补推缺少的改动
  • 控制台日志分类着色:日志按类别加 emoji 与彩色标签,重复日志合并显示;最近工程下显示所在目录
  • 检查改动:顶栏新增「检查改动」按钮,并支持全局快捷键(默认 ⌃⌥⌘R)
  • 主界面去掉「保存即注入」开关:改动检测统一由 Mac 端处理
  • 其他工程的 App 不再接入:同名工程副本或其他工程运行的 App 不会再被接入,也不再每 2 秒重连刷屏

修复

  • 文件监听改为按文件指纹判定改动,修复 Xcode 保存后偶发漏检
  • 从构建清单补全编译命令:Xcode 清理旧构建日志后,大部分 ObjC 文件仍可热重载(大型工程此前只能解析到极少数编译命令);编译命令缓存随 Xcode 版本失效
  • 修复热重载频繁崩溃:类的内存布局变化(增删、重排属性或 ivar)时不再替换该类实现,避免越界访问;vtable 按函数名核对后再覆写;+load 中 swizzle 的分类重新注入不再无限递归
  • 连接层线程安全,真机监听出错后自动重建
  • 修复 SwiftUI some View 类型变化、资源 hook 安装竞态、C++ 函数内静态对象迁移等问题

客户端有以上修复,需要更新依赖并重新编译 App 才能生效;未重新编译的客户端仍可正常热重载,不会被要求重新编译。

详见 接入指南。