踩一个Flutter Hot Reload的新坑

918 阅读1分钟

最新更新 libusbmuxd这个库的作者已经发布了一个bugfix, 目前来看按照官网命令安装应该没啥问题了 参考 - github.com/libimobiled… 然而这个库未来依然随时可能更新, 最稳妥的方式仍然是选择一个稳定版本进行本地构建

记一个小坑

  • 主要影响:最近根据官网文档安装Flutter Hot Reload依赖的同学
  • 遇到问题:iOS连接实体手机开发时候启动xcode flutter的debugger后,会遇到连接在5秒之后自动断开的情况, 稳定复现...
  • 事故现场

    启动的时候看起来风平浪静

    过了几秒就翻车了

  • 直接跑flutter run的话也是一样会5秒后自动翻车

原因

  • Flutter官方使用libusbmuxd这个库去连接iOS设备做热加载
    • 官方文档上建议的安装方式是
      brew install --HEAD usbmuxd
      brew link usbmuxd
      
    也就是直接拉人家libusbmuxd这个库的master代码了... 可以说很大胆了
    • 没想到libusbmuxd更新了... 然后最新的commit代码有点问题, 导致了这次问题.

分析

  • 换个稳定版本的libusbmuxd (可是brew没办法安装具体某一个commit)

解决办法

  • 找到libusbmuxd库的前一个稳定版本commit 2501f51
  • 下载下来 本地重新安装一下这个版本的libusbmuxd
./autogen.sh
make
sudo make install

替换之后, 终于可以继续愉快地写bug了