工作解决方案(截至 2020 年 3 月 24 日)
嗯,经过这么多试验并打开了数千篇博客文章以找出解决方案,我设法让它工作,没有一个失败案例。
对我来说,这一直是我的 Ionic+Cordova 应用程序的问题。
当我运行一个简单的 Cordova 或 Ionic 应用程序时,当我看到这个问题(Safari 断开连接)不存在时,我的潜意识开始思考这个问题。然后突然间,我尝试了另一件事,它奏效了。
基本上,当任何文件的大小过大(不确定限制)时,Safari 网络检查器会断开连接。也许,一些图像、一些脚本和 CSS。就我而言,它曾经是因为 JavaScript 及其源映射文件。
所以,当我开始在没有源映射的情况下运行我的 iOS 应用程序时,问题就消失了。为此,我所要做的就是将--source-map=false 传递给我的ionic cordova commands,例如:
ionic cordova run ios --source-map=false
ionic cordova run ios -lc --source-map=false
我写了一篇关于这个的小文章详细阐述这个https://medium.com/wizpanda/a-small-tip-to-speed-up-development-with-angular-or-ionic-d5764f639c0c
原答案
这里列出的大多数答案对我有用了一段时间,但几个小时后它们也停止了工作,我的 Safari Web 控制台在打开时再次断开连接。
其他几个对我有用的选项:
选项 1 - 从 Safari 清空缓存
Safari on MacOS -> Develop -> Empty Cache
选项 2 - 清除受信任的计算机
On iOS Device -> Settings -> Developer -> Clear Trusted Computers然后重新连接USB线,然后再次尝试调试
选项 3 - 让调试器成为傻瓜(截至 2019 年 1 月 14 日)
这个解决方案已经运行了很长时间。由于这是一个与 iOS 和 Mac 之间的连接相关的问题,所以我打开了我的 Console 应用程序,只选择了我的 iPhone。 (这以某种方式让我的 iOS 设备连接到我的 Mac)
然后在 Safari 上打开开发人员的控制台对我来说很好,无需断开连接。
选项 4 - 通过 Xcode 运行
这也是一种解决方法,也是一种查看其功能的技巧。您基本上可以通过ionic cordova prepare ios 准备您的 iOS 应用程序,然后使用 Xcode 运行该应用程序并将其部署到您的 iPhone。
至少,我能够看到控制台日志,有时,它甚至可以与 Safari 网络检查器一起使用。
选项 5 - 在 iPhone 模拟器上运行
我认为这是最有效的解决方案。当您的系统没有运行太多应用程序时,此选项适用,因为启动模拟器会占用大量系统资源。
基本上,不是在真实设备上运行您的应用,而是通过 Xcode 在 iPhone 模拟器中运行您的应用,并在 Safari 网络检查器中正常调试它,不会出现此问题。
这可能是因为传输到 Safari 检查器的文件来自系统本身。