Safari Web检查程序保持断开连接

问题描述 投票:40回答:12

我的iPad上安装了带有iOS 8.3的Safari 8.0.6,在我的Mac上通过Web Inspector进行调试(10.10.3)时,连接断开连接(断开连接后我看不到设备名称在开发菜单下)但是可以恢复如果我退出safari然后重新启动然后我能够再次远程刷新和检查。

debugging safari osx-yosemite safari-web-inspector
12个回答
36
投票

有几件事要尝试:

1.在Xcode模拟器上测试:

在Xcode中打开iPhone模拟器并使用Safari Web Inspector进行调试。

旁注:也许你需要下载Safari Technology Preview

2.重置设备上的位置和隐私设置。

设置>常规>重置>重置位置和隐私

3.在真实设备上进行调试

有了这种配置,它似乎现在正常工作。

iPhone X,iOS版本12.1.3 macOS Mojave版本10.14.2(18C54)Safari版本12.0.2(14606.3.4)

对于其他设备/版本,请进一步阅读(也许您可以减少您的构建大小)。


编辑:2018.09.20

@Chet发现,Web Inspector一直在断开太大的JS文件和映射文件

https://stackoverflow.com/a/52338231/4641479

Github上的问题:

https://github.com/google/ios-webkit-debug-proxy/issues/275

https://github.com/google/ios-webkit-debug-proxy/issues/274

我可以在具有生产版本(1.8 MB + 2.4 MB文件)的真实设备上确认这一点,Safari Web Inspector始终保持连接状态。

enter image description here

因为开发版本不是:

enter image description here


在我的网络检查员很少工作之前,经常只是停止工作 - 但仍然是开放的。在Safari更新后,Web检查员会立即打开和关闭。如果遇到这样的问题..

这将有效:

Step 1. Get the latest Safari Browser

Safari:11.1(12605.1.33.1.2)

https://developer.apple.com/safari/download

macOS Sierra和OS X El Capitan(我也支持macOS high Sierra)

也许你需要下载Safari Technology Preview


Step 2. Reset your location and privacy settings

在您的设备上转到:

设置>常规>重置>重置位置和隐私

资料来源:https://forums.developer.apple.com/thread/87181


Step 3. Connect your device

在OS X上打开Safari如果您已使用USB电缆连接iPhone设备,请先断开它。现在插上它。

在OS X Safari上转到:

开发>设备名称>申请开发

现在在手机上有一个许可问题。选择信任,现在您可以选择设备Safari和调试中的打开选项卡。


Happy debug!

现在,Web检查员保持连接状态。


0
投票

关闭XCode首先帮助了我。


0
投票

神奇的解决方案对我有用:

1)重新启动你的MAC 2)重新启动你的Iphone 3)它的工作原理


0
投票

我知道已经有很多答案了,但是我想发帖,因为它们现在都不适用于我。但是,我的手机的电池处于“低模式”......但是由于我将其插入开发中,我认为这不是什么大问题。但是,进入手机设置并关闭低电量模式解决了我的问题。现在safari不会断开连接。

只是想发布,以防有​​人用低电池进入这个。


10
投票

这里列出的大多数答案都适用于我一段时间,但几个小时后它们也停止工作,我的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之间的连接有关的问题所以我打开了我的控制台应用程序,只是选择了我的iPhone。 (这在某种程度上保持我的iOS设备连接到我的Mac)

然后打开Safari上的开发人员控制台对我来说很好,没有断开连接。


7
投票

听起来很奇怪,但由于电池完全触发断开连接可能会发生这种情况:https://forums.developer.apple.com/thread/92290

当Iphone的电池电量充足时,似乎会断开连接。 (所以我们暂时打开闪光灯和相机以检查电池时杀死电池......)


4
投票

这仅适用于物理设备。如果设备的电池已满,Safari可以强制断开物理设备。 (“完全充电?那么,让我们断开你,因为你不再需要充电了 - 而且你的调试会话也是......”)

您需要在Develop > [device]中选择“通过网络连接”,然后将调试器附加到要调试的页面。如果您没有Safari中的“开发”菜单,请转到Safari > Preferences > Advanced并选择菜单栏中的“显示开发”菜单。

enter image description here

如果这不起作用,您可以先尝试通过App Store升级您的OS / Safari。

如果问题仍然存在,请断开iOS设备的连接。进入您的iOS设备,进入设置> Safari> Web检查器,然后将其关闭然后重新打开。强行退出Safari。重新插入iOS设备并再次启动Safari并通过Safari>开发菜单重新连接iOS设备。


4
投票

你的iPhone上运行了很多后台应用程序吗?杀了他们再试一次。

我们向WWDC的Apple开发人员展示了这个问题,他们怀疑这是由于iPhone的内存限制。果然,杀死我们的大部分后台应用都解决了我们的问题。


2
投票

我不能说我有一个解决方案,但朝着正确的方向迈出了一步。

我尝试使用ios-webkit-debug-proxy,因此我可以使用Chrome Dev Tools而不是Safari Dev Tools。

注意,为了使它工作,我可以将我的iOS升级到最新的11.4.1和MacOS 10.13.65,然后重新安装最新版本:

brew update
brew install ios-webkit-debug-proxy
brew reinstall --HEAD libimobiledevice
brew reinstall -s ios-webkit-debug-proxy

ios_webkit_debug_proxy

运行ios_webkit_debug_proxy之后,我能够尝试通过chrome://inspect连接并立即再次断开连接:

Listing devices on :9221
Connected :9222 to Chet's Phone (6a028994cf281be807bf80c5557c3f2eb3fbb8b0)
Invalid packet header 0x1ffffff91ffffffa0ffffff9d == .... == 26321053
Disconnected :9222 from Chet's Phone (6a028994cf281be807bf80c5557c3f2eb3fbb8b0)

但是,我们有一个线索! Invalid packet header。在某处听起来像是一个较低级别的bug。不知道在哪里提交这个,但是...


1
投票

这困扰了我很长一段时间,行为非常不一致,这里有一些我发现帮助的事情,我还写了一篇关于这个here的博客文章。

  1. 更新mac safari和ios - 我发现在最新的两个版本之后它开始为我工作,可能有Safari之间的调试不兼容。
  2. 检查ios中的Web检查器是否已启用 - 已知可以在升级后关闭此设置,检入设置> safari> advanced> Web检查器。
  3. 检查你所连接的端口 - 我已将我的插头插入便宜的集线器/通过苹果键盘/显示器集线器,发现直接进入mac工作得更好。
  4. 你使用的是优质电缆吗? - 我发现更好的质量/官方电缆没有磨损,在调试时具有更好的可靠性。
  5. 其他值得注意的观察 - 其他人评论说确保在Safari中启用cookie,启用私有模式并在Xcode打开时进行尝试会影响其可靠性,尽管我自己也没有看到它可能会帮助其他人尝试。

1
投票

MacOS Mojave / Catalina解决方案

对我来说,这个问题在我升级到新的macOS Mojave后就开始了,这可能已经在上面提到了,但对我来说,我只需要下载为Mojave构建的新“Safari Technology Preview”应用程序。

Safari下载页面

https://developer.apple.com/safari/download/

直接下载Mojave

https://secure-appldnld.apple.com/STP/041-71285-20190604-6d0dcb17-07e5-40a0-b418-dba732cefe64/SafariTechnologyPreview.dmg


0
投票

最新的Safari技术预览似乎已经解决了它。

https://developer.apple.com/safari/technology-preview/

© www.soinside.com 2019 - 2024. All rights reserved.