这仅适用于物理设备 . 如果设备的电池已满,Safari可以强制断开物理设备 . ("Full battery? Well then, let's just disconnect you as you don't need to charge anymore -- and there goes your debugging session too...")
您需要在 Develop > [device] 中选择 Connect via Network ,然后将调试器附加到要调试的页面 . 如果您在Safari中没有 Develop 菜单,请转到 Safari > Preferences > Advanced 并选择 Show Develop menu in menu bar .
8 回答
现在解决方案:
如果您确实需要通过Safari Web Inspector使用真实设备进行调试,则有时会/某些情况下有效 . 也许你可以帮我们调查一下 .
EDIT: 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始终保持连接状态 .
因为开发版本不是:
EDIT: 2018.09.19
Short: 有时似乎工作,这里有一些错误信息 .
(我不确切地知道我是否在这里匹配错误消息的正确顺序)
webinspectord: XPC Connection Failed for Application: 1797 - PID:1797 - <private>
这个用于手机:
EDIT: 2018.08.09
我使用macOS High Sierra(10.13.6)和最新的iPhone 6 Plus(iOS)(11.4.1)和Safari:版本11.1.2(13605.3.8)将我的mac更新到iMAC .
现在没有提到的解决方案适用于真实设备 .
因为我必须调试一些东西,这只发生在已部署的应用程序上,而不是在Safari浏览器中,而是在iPhone模拟器中 - you could debug with Safari Web Inspector in the iPhone Simulator.
在我的网络检查员很少工作之前,往往只是停止工作 - 但仍然是开放的 . 在Safari更新后,Web检查员会立即打开和关闭 . 如果遇到这样的问题..
这将有效:
步骤1.获取最新的Safari浏览器
野生动物园:11.1(12605.1.33.1.2)
https://developer.apple.com/safari/download
macOS Sierra和OS X El Capitan(我也支持macOS high Sierra)
步骤2.重置您的位置和隐私设置
在您的设备上转到:
资料来源:https://forums.developer.apple.com/thread/87181
步骤3.连接您的设备
在OS X上打开Safari如果您已使用USB电缆连接iPhone设备,请先断开它 . 现在插上它 .
在OS X Safari上转到:
现在在手机上有一个许可问题 . 选择信任,现在您可以选择设备Safari和调试中的打开选项卡 .
快乐调试!
现在,Web检查器保持连接状态 .
听起来很奇怪,但由于电池完全触发断开连接可能会发生这种情况:https://forums.developer.apple.com/thread/92290
这里列出的大多数答案都适用于我一段时间,但几个小时后它们也停止工作,我的safari Web控制台再次在打开时保持断开状态 .
其他一些对我有用的选择:
Option 1
Safari on MacOS -> Develop -> Empty Cache
Option 2
On iOS Device -> Settings -> Developer -> Clear Trusted Computers
然后重新连接USB电缆,然后再次尝试调试这仅适用于物理设备 . 如果设备的电池已满,Safari可以强制断开物理设备 . ("Full battery? Well then, let's just disconnect you as you don't need to charge anymore -- and there goes your debugging session too...")
您需要在
Develop > [device]
中选择 Connect via Network ,然后将调试器附加到要调试的页面 . 如果您在Safari中没有 Develop 菜单,请转到Safari > Preferences > Advanced
并选择 Show Develop menu in menu bar .如果这不起作用,您可以先尝试通过App Store升级您的OS / Safari .
如果发生故障,请断开您的iOS设备 . 进入您的iOS设备,进入设置> Safari> Web Inspector,然后将其关闭然后重新打开 . 强行退出Safari . 重新插入iOS设备并再次启动Safari并通过Safari>开发菜单重新连接iOS设备 .
这困扰了我很长一段时间,行为非常不一致,这里有一些我发现的帮助,我也写了一篇关于这个here的博客文章 .
更新了mac safari和ios - 我发现在最新的两个版本之后它开始为我工作,可能是Safari之间的调试不兼容 .
检查ios中的Web检查器是否已启用 - 已知升级后可以关闭此设置,请检入设置> safari> advanced> Web检查器 .
检查你所连接的端口 - 我已将我的插头插入便宜的集线器/通过苹果键盘/显示器集线器,发现直接进入mac工作得更好 .
您使用的是优质电缆吗? - 我发现更好的质量/官方电缆没有磨损,在调试时具有更好的可靠性 .
其他值得注意的观察 - 其他人评论说,确保在Safari中启用cookie,启用私有模式并在Xcode打开时进行尝试会影响可靠性对此,虽然我自己没有看到这个,但可能有助于其他人尝试 .
我不能说我有一个解决方案,但朝着正确的方向迈出了一步 .
我尝试使用ios-webkit-debug-proxy,因此我可以使用Chrome Dev Tools而不是Safari Dev Tools .
注意,为了使其工作,我可以将我的iOS升级到最新的11.4.1和MacOS 10.13.65,然后重新安装最新版本:
运行
ios_webkit_debug_proxy
后,我能够尝试通过chrome://inspect
进行连接,并立即再次断开连接:但是,我们有一个线索!
Invalid packet header
. 在某处听起来像是一个较低级别的bug . 不知道在哪里提交这个,但是...最新的Safari技术预览似乎已经解决了它 .
https://developer.apple.com/safari/technology-preview/
关闭XCode首先帮助了我 .