在实际开发过程中,为了满足项目业务方面以及兼容历史代码等方面,经常会采取 Flutter 功能模块以 aar 或 Module 等引入方式;而 Flutter Code 代码是与 Android / iOS Native Code 区分为两个工程的;此时若需要调试应该怎么处理呢?
小菜目前主要从事 Android 开发,日常用的最多的是 Run / Debug 跟踪运行项目,而目前 Flutter Module 作为 Native Project 的子模块,直接 Run / Debug 会把 Flutter Module 当作一个新的 Project 运行;
此时需要通过 Flutter Attach 方式在 AndroidStudio 与设备之间建立 Socket 连接,之后便可以对 Flutter Code 进行调试;


若打开了 Native app 之后 Flutter Attach 仍旧一直卡在连接设备 Waiting for a connection from Flutter on… 可以尝试杀掉 app 重新进入 app 即可;
采用 Flutter 跨平台技术,若对原生 Android / iOS 技术都有了解会便利很多;然而小菜对于 iOS 是一窍不通,那如何在 iOS 设备上调试 Flutter Code?
小菜请教 iOS 同学,主要有两种方式:第一种是完全按照 iOS 开发流程,配置环境,更新运行 Native iOS Code,之后 Flutter Attach 调试 Flutter Code;第二种是编译一个模拟器适用的 Debug 包,直接在模拟器安装,之后再通过 Flutter Attach 进行调试;

小菜刚装好 Xcode 之后,通过 AndroidStudio 打开 Open iOS Simulator 一直没反应,查阅资料之后发现需要预先开通 Xcode 权限;
// switch 后为 Xcode Developer 路径
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/


小菜测试 Android 和 iOS 触发时机略有不同;Android 一般是先 Flutter Attach 之后再冷启动 app 而 iOS 可以先运行 app 然后直接 Flutter Attach;但对我们测试影响不大;
小菜对 Flutter 的学习和应用还处于基础阶段;如有错误,请多多指导!
来源: 阿策小和尚
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1364/viewspace-2825323/ ,如需转载,请注明出处,否则将追究法律责任。