为什么在使用iOS 6设备进行远程调试时,Safari会显示“无可检查应用程序”?

89
当我连接我的iOS 6设备进行远程调试以测试我的移动Web应用程序时,Safari的开发菜单显示我的设备名称并显示“无可检查应用程序”。
我已经在设备的Safari设置中启用了Web检查器。
为什么会出现这种情况?
15个回答

54

iOS 9(使用OSX El Capitan)的更新:

在您的移动设备上,转至设置 -> Safari -> 欺诈网站警告 = 关闭[默认 = 打开]

更改此设置后,我还需要重新连接iPhone。

这对我解决了问题。


9
在更改此设置后,我还需要重新连接iPhone。非常感谢! - KIR

44

从iOS 16.4开始,必须手动将WKWebView标记为可检查,以允许Safari调试:

#if DEBUG
       if #available(iOS 16.4, *) {
          webView.isInspectable = true
       }
#endif

5
救了我的一天!+10 - Mrugesh Tank
谢谢!我花了好长时间才弄明白这个。 - spnkr
我应该在哪个文件中的哪个位置添加这个? - Abhay Singh
在创建一个webview实例之后,可以使用@AbhaySingh的方法。例如, let webView: WKWebView = WKWebView(frame: .zero, configuration: webViewConfiguration) webView.isInspectable = true - Ivan Nikitin
显示的是应用程序名称,但下面是不可检查的 about:blank。 - Abhay Singh
非常感谢你的帮助!谢谢。 - undefined

33
如果您在 设置 > Safari 中启用了私人浏览模式,则无法使用远程调试功能。如果关闭了私人浏览模式,则可以完美地使用它。

3
还有其他原因导致它不能工作吗?我相信最近 Safari(桌面版)更新后该功能有点失效了。我可以看到 Safari 视图,但无法在另一个应用程序中看到 UIWebViews。 - derrylwc
1
@derrylwc 你的意思是最近更新后,你无法使用Mac上的Safari开发者选项来调试应用程序中的UIWebViews吗? - Easwaramoorthy K
2
我发现在iPhone的Safari设置中,我还需要清除历史记录、清除Cookie和数据。 - Bill Keller
5
为了在运行 iOS 8 的 iPad 上调试 Safari,我需要将 Safari 更新到最新版本(7.1)。 - Liam
1
我在这篇文章中提到的设置找不到(iOS 9),但是禁用“不跟踪”似乎解决了问题。 - james246
显示剩余2条评论

30

最近我在桌面版Safari中遇到了调试UIWebView的问题,结果发现问题出在我的Xcode应用程序配置上。最近的构建版本是为生产环境配备的而不是为测试环境配备的。重新为测试构建应用程序后,它再次出现在Safari Debug菜单中 :-)


这是我的问题,我试图调试使用ionic2制作的生产应用程序。我所做的是:1.ionic build ios,2.将iPad连接到电脑上,然后在Xcode中选择设备;3. Develop>Run - sTx

28

我遇到了同样的问题,最终我理解到问题在于Xcode的设置。

要解决这个问题:

启用Safari调试

首先确认你已经在设备上启用了Safari调试(在设备上进入:设置 >> Safari >> 高级选项 >> 启用调试;或者在iOS 9+上开启:设置 >> Safari >> 高级选项 >> 网页检查器)。如果你已经这么做了,你将在Safari >> 开发中看到你的设备。如果你看到了你的设备但是在它下面没有看到你的应用程序,而是看到了“没有可检查的应用程序”,请检查你的Xcode设置。

Xcode

1. 更改构建配置:

右键单击项目名称(在播放/运行按钮下方)并选择“编辑模式...”,在“编辑模式”窗口下“运行”选项卡中将“Build Configuration”更改为“Debug”(而不是“Release”)。

2. 更改代码签名:

单击文件树中的项目名称以显示项目设置。 选择“构建设置”选项卡。将“提供配置文件”更改为“自动”。将“代码签名身份”更改为“iOS开发者”。

请注意,更改代码签名将防止你发布生产版本,但你仍然可以调试你的应用程序。


1
这个答案帮助我意识到我的问题是我试图调试一个TestFlight构建 - 这是行不通的。它需要是一个Debug构建 - 对于我来说,是通过连接我的设备并在Xcode中按下播放按钮来实现的。 - SeanMC

20

试试以下几种方法:

  1. 在您的iPhone/iPad上,双击Home按钮以显示运行应用程序列表,关闭Safari(或适当的Web应用程序),然后重新打开。

  2. 退出/重新打开Mac上的Safari浏览器。

  3. 将iOS设备拔出/插回。

顺便说一下,我可以在启用iOS设备上的私人浏览模式后连接到Safari浏览器。


1
我可以证实这些观察结果。有时候USB电缆和端口也是因素之一。有时只需等待一段时间它就开始工作了。很奇怪。 - auco
我们能否对通过OTA发布的应用程序进行远程调试(发布而非调试)? - Durai Amuthan.H
@Dunc - 刚刚我在某个地方读到了这样的信息:使用除开发者之外的供应配置文件(例如Ad-Hoc和分发)的应用程序无法通过Safari进行远程调试... - Durai Amuthan.H
@Durai 我可以调试从应用商店下载的实时应用程序(因此是分发配置文件)。这是我们自己的应用程序之一,所以可能与我的特定Mac / iPhone证书有关。我建议你自己尝试。 - Dunc
@Dunc - 感谢您更新了这个信息给我。 - Durai Amuthan.H

6

我进入了设置 > Safari > 高级选项,然后将Web 检查器的开关从开启切换到关闭,再切换回开启。这样就可以解决问题了!


不得不做两次,但最终似乎已经解决了问题。我还打开了“允许自动化”设置,不知道是否有帮助。 - Geoff Davids

3

如果你刚安装了XCode 9,请不要忘记安装Safari 11,否则你将看到"没有可检查的应用程序"。


3

确保您没有连接到 VPN。


3

我在 High Sierra 上使用 Safari 11.0.3 时也遇到了同样的问题。唯一有效的解决方法是从 这里 安装 Safari Technology Preview


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接