211

随着最近发布的 Chrome for iOS,我想知道如何为 Chrome iOS 启用远程调试?

更新:随着 iOS 6 的发布,现在可以使用Safari进行远程调试。

4

15 回答 15

235

所选答案仅适用于 Safari。目前无法在 iOS 上的 Chrome 中进行真正的远程调试,但与大多数移动浏览器一样,您可以使用WeInRe进行一些简单的调试。设置起来有点麻烦,但可以让您检查 DOM、查看样式、更改 DOM 并使用控制台。

在此处输入图像描述

建立:

  • 安装nodejs
  • npm install -g weinre
  • weinre --boundHost -all-
  • 打开 http://{wifi-ip-address}:8080/ 并复制目标脚本代码
  • 将脚本标签粘贴到您的页面中(或使用小书签)
  • 点击调试客户端用户界面链接(http://{wifi-ip-address}:8080/client/#anonymous)
  • 当您在客户端下获得一条绿线时,浏览器已连接

小书签安装起来有点麻烦。如果您为桌面版和移动版 Chrome 启用了书签同步功能,这是最简单的。从本地 weinre 服务器复制书签 url(同上)。不幸的是,它不起作用,因为它的 url 编码不正确。所以打开 JavaScript 控制台并输入:

copy(encodeURI('')); // paste bookmarklet inside quotes

您现在应该在剪贴板中有 url 编码的书签。将其粘贴到Mobile Bookmarks下的新书签中。称它为 weinre 或简单的类型。它应该很快同步到您的手机,因此请加载您要检查的页面。然后在 url 栏中输入书签名称,您应该会看到书签作为自动完成建议。单击它运行书签代码:)

在此处输入图像描述

于 2014-02-26T16:33:39.373 回答
118

更新:

不再是最佳答案,请遵循gregers的建议。

新答案:

使用温热

老答案:

您现在可以使用 Safari 进行远程调试。但它需要 iOS 6。

这是http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector的快速翻译

  1. 通过 USB 将您的 iDevice 与您的 Mac 连接
  2. 在 Mac 上打开 Safari 并激活开发工具
  3. 在您的 iDevice 上:转到设置 > Safari > 高级并激活网络检查器
  4. 使用您的 iDevice 访问任何网站
  5. 在你的 Mac 上:打开开发者菜单并从你的 iDevice 中选择站点(它在顶部的 Safari 菜单中)

正如Simons指出的那样,需要关闭隐私浏览才能进行远程调试。

设置 > Safari > 隐私浏览 > 关闭

于 2012-09-26T17:23:37.043 回答
52

您目前无法在 iOS 上直接远程调试 Chrome。它使用的 uiWebView 可能与 Mobile Safari 略有不同。

你有几个选择。

选项 1:使用 Safari 的检查器远程调试 Mobile Safari。如果您的问题在 Mobile Safari 中重现,这绝对是最好的方法。事实上,通过 iOS 模拟器更容易。

选项 2:使用 Weinre 获得精简的调试体验 Weinre 没有太多功能,但有时它已经足够好了。

选项 3:远程调试功能相同的适当 uiWebView。

这是执行此操作的最佳方法。您需要安装 XCode

  1. 转到github.com/paulirish/iOS-WebView-App并“下载 Zip”或克隆。
  2. 打开XCode,打开已有项目,选择刚刚下载的项目。
  3. 打开 WebViewAppDelegate.m 并将 更改为urlString您要测试的 URL。
  4. 在 iOS 模拟器中运行应用程序。
  5. 打开 Safari,打开开发菜单,选择iOS 模拟器并选择您的 web 视图。
  6. Safari Inspector 现在将检查您的 uiWebView。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2014-09-12T22:22:29.623 回答
11

据我了解,Google Chrome 使用的是 iOS 的 UIWebView,而不是像 Android 对应的 Chrome 的完整实现。

于 2012-07-20T04:32:58.603 回答
5

我推荐Vorlon,像 weinre 一样工作。我喜欢 Vorlon 的 UI,它支持SSL,我的应用程序是 HTTPS,我用 ngrok、ghostlab 和 vorlon 尝试了 weinre,只有 vorlon 可以正常工作。

于 2017-04-10T02:17:48.667 回答
3

许多远程控制台工作正常。http://farjs.net是我的项目,我能够成功调试特定于 Crome iOS 的问题,而在使用它的 safari 中没有发生。(可能还有所有其他移动浏览器)

问题是注入调试代码有点棘手,因为 Chrome 不允许您安装小书签。

相反,您可以在要调试的页面上打开一个选项卡,然后在 farjs.com 上打开另一个选项卡,然后单击“书签”

复制书签 JS 代码,返回第一个选项卡,包含应调试的页面,然后将书签代码粘贴到位置栏中。

最后一步是滚动到地址栏的开头并添加“javascript:”,因为 Chrome 会删除它。

于 2014-09-25T01:10:41.537 回答
3

我还没有尝试过,但是iOS WebKit 调试代理(ios_webkit_debug_proxy / iwdp)据说可以让你远程调试 UIWebView。来自 README.md

ios_webkit_debug_proxy(又名 iwdp)允许开发人员通过 Chrome DevTools UI 和 Chrome 远程调试协议检查真实和模拟 iOS 设备上的 MobileSafari和UIWebViews 。DevTools 请求被转换为 Apple 的 Remote Web Inspector 服务调用。

于 2015-10-26T11:45:39.163 回答
3

Vorlon.JS可用于 iOS 或任何其他客户端的远程调试。

  1. 只需使用全局安装它npm i -g vorlon
  2. 使用启动服务器vorlon
  3. 在服务器运行的情况下,在浏览器中打开http://localhost:1337以查看 Vorlon.JS 仪表板
  4. 最后一步是通过将此脚本标签添加到您的应用程序来启用 Vorlon.JS:
    <script src="http://<yourExternalIP>:1337/vorlon.js"></script>
  5. 所有连接的客户端,例如 iPhone、Android 将在 Vorlon.JS 仪表板的客户端列表中可用 在此处输入图像描述

请注意,此方法还可用于使用ngrok调试不在 localhost 上运行的应用程序。有关详细信息,请参阅https://stackoverflow.com/a/45443203/2073920

免责声明

我只是一个用户,我不隶属于 Vorlon.JS 和 ngrok

于 2017-08-06T12:03:11.993 回答
2

您还需要关闭“私人浏览”。

设置 > Safari > 隐私浏览 > 关闭

于 2013-03-15T09:14:44.100 回答
2

我正在使用 remotedebug-ios-webkit-adapter,在 Windows 10 上的 Chrome 中打开 IOS 和调试器对我来说效果很好。

如果它对某个人有帮助会很高兴链接

于 2018-01-24T08:13:26.610 回答
1

注意:我与 Ghostlab 的创作者 Vanamco 没有任何关系。

能够调试特定于 Chrome 的问题对我来说很重要,因此我着手寻找可以帮助我解决此问题的方法。我最终愉快地把钱扔在了Ghostlab 3上。我可以测试 Chrome 和 Safari 移动浏览器,就像在桌面上查看它们一样。它只是给了我一个 LAN 地址,用于我想调试的任何设备。使用该地址的每个应用程序都将出现在 Ghostlab 的列表中。

在此处输入图像描述

在此处输入图像描述

强烈推荐。

于 2018-08-29T17:37:46.543 回答
1

iOS WebKit 调试代理是最简单的解决方案 - 直接在 Chrome 中调试和实时预览。

于 2020-10-19T10:15:35.483 回答
0

甚至我也在寻找相同的功能,截至今天,它尚未实现。不过,我可以想到两种选择,

  1. 我注意到 Chrome 和 Safari 的行为完全相同。Chrome 甚至支持 Safari 支持的陀螺仪和其他相关事件。我目前正在通过在 Safari 上启用调试控制台来调试我的 Web 应用程序(通过设置-> Safari)

  2. 也可以试试 Adob​​e Shadow,它允许远程调试/检查和同步。

HTH。

于 2012-07-08T09:40:12.610 回答
0

Adobe Edge Inspect ( https://creative.adobe.com/products/inspect ) 是调试所有移动设备 IOS 和 Android(虽然没有 Windows Phone)的另一种方法。它使用 weinre 进行远程 DOM 检查/更改。这不是最快的方法,但它适用于 Windows。

于 2014-08-06T12:54:31.183 回答
0

Chromium 上有一个未解决的错误:https ://bugs.chromium.org/p/chromium/issues/detail?id=584905

不幸的是,他们依靠 Apple 在 WKView 中打开一个 API 来实现这一点,之后也许可以从 Safari 进行调试。

于 2016-04-04T15:56:09.427 回答