flutter attach 慢

慢主要是因为默认要做 Bonjour/mDNS 发现 并可能扫 无线设备

但是用 flutter attach --debug-url 'http://127.0.0.1:57198/c2COwFS26xM=/'会快很多

可以通过设置launch.json

在项目根目录 .vscode/launch.json 里加一个 attach 配置,写上你从 Xcode / flutter run 控制台复制的那行 VM Service 地址(每次运行会变,要改 URL):

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Flutter Attach (vmServiceUri)",
      "type": "dart",
      "request": "attach",
      "vmServiceUri": "http://127.0.0.1:端口号/xxxxxxxx=/"
    }
  ]
}

Run and Debug 里选 「Flutter Attach (vmServiceUri)」 再启动,等价于带 --debug-url,一般就不会再长时间 Waiting…。
若扩展版本较老仍认 observatoryUri,可二选一或两个都试一下(多数新版本已统一为 vmServiceUri)。
注意:http://127.0.0.1:... 这一整串 每次重新 Run App 都会变,需要重新从控制台复制,或写个小脚本/快捷方式替换。

怎么用: 左侧 Run and Debug,下拉选 「Flutter Attach (vmServiceUri)」,点绿色运行;先保证本机已用 Xcode/flutter run 把 App 跑起来且 端口 57660 仍对应这次会话(关 App 或重跑后地址会变)。

重要: 文件里加了注释说明——每次重新 Run,都要把控制台里新的 http://127.0.0.1:.../...=/ 整段替换进 vmServiceUri,否则连不上。

VM Service怎么获取?

  #if DEBUG
    /// 轮询等待 `vmServiceUrl` 非空后输出(仅 Debug/Profile 引擎有值,Release 恒为 nil)
    private static func logDartVmServiceUrlWhenReady(_ engine: FlutterEngine) {
        let maxAttempts = 24
        let interval: TimeInterval = 0.5
        
        func tryLog(attempt: Int) {
            if let url = engine.vmServiceUrl {
                let msg = "[Flutter] Dart VM Service URL: \(url.absoluteString)"
                NSLog("%@", msg)
                print(msg)
                return
            }
            guard attempt + 1 < maxAttempts else {
                NSLog("[Flutter] vmServiceUrl 仍为 nil(已重试 %d 次)。请确认 Xcode 为 Debug、且使用 FLUTTER_DEBUG 本地引擎。", maxAttempts)
                return
            }
            DispatchQueue.main.asyncAfter(deadline: .now() + interval) {
                tryLog(attempt: attempt + 1)
            }
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
            tryLog(attempt: 0)
        }
    }
    #endif

这样运行完项目之后 宿主项目会出现

[Flutter] Dart VM Service URL: http://127.0.0.1:57660/Tyti836RT1E=/

这个是每次都变的 注意attach时替换

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容