Skip to content

NoCompile v0.2.8

Choose a tag to compare

@wangwanjie wangwanjie released this 21 Oct 09:22
· 6 commits to main since this release

NoCompile 0.2.8

修复

  • 真机注入报「存在未解析符号」(symbol not found in flat namespace):工程在 Debug 下也设置了 EXPORTED_SYMBOLS_FILE(例如只导出 _main)或 -fvisibility=hidden 时,App 里的类、函数、常量都不在导出表中,注入的 dylib 加载失败。现在 Mac 端会从 DerivedData 中与 App 相同 UUID 的二进制里找到这些符号,按 App 运行时的地址生成一个小的「符号桥接」dylib,先于注入 dylib 加载,日志中显示「桥接 N 个 App 未导出的符号」
  • App 启动后很久才显示「已连接」:解析构建日志与构建清单改在后台进行,头文件依赖索引在后台重建、重建期间沿用旧索引,大型工程刚构建完时 App 也能立即完成握手
  • 同一个 App 进程重新连接(网络抖动、重新插拔数据线)时不再把已推送过的改动再推一遍
  • 同时运行两个 NoCompile 时,后启动的实例不再连接真机,避免两个实例互相顶掉设备上的连接

文档

  • 接入指南「常见问题」新增「存在未解析符号」的说明

升级提示

  • 客户端修订号没有变化,已编译的 App 仍可正常热重载。符号桥接需要新版客户端在握手时上报镜像信息,App 未导出符号的工程请重新编译运行 App;用「拷贝 bundle」方式接入的,确认这次构建执行了 nocompile_copy_bundle.sh,把新 bundle 拷进了 App

详见 接入指南。