【问题标题】:iOS PhoneGap debug WorkflowiOS PhoneGap 调试工作流程
【发布时间】:2012-06-27 18:01:53
【问题描述】:

如何在 Xcode 中调试 javascript?

我可以做的一件事是在 OS X Chrome 浏览器中打开页面,但这自然不适用于涉及本机代码的应用程序流。是否有我缺少的智能 Xcode 技巧。

【问题讨论】:

  • 我唯一能想到的就是通过 Phonegap 将来自 Javascript 的日志消息发送到 Xcode 控制台。除此之外,我认为没有其他方法可以在设备上调试 Javascript。
  • 是的,console.log 是你的朋友 :-)。使用 Chrome 是让您的 JS 正常工作然后添加本机功能的最佳选择
  • Apple 最近在 Safari 网络检查器中添加了远程移动设备调试功能。这是调试 iOS PhoneGap 应用程序的一大步。 (见下面我的回答)

标签: javascript ios xcode cordova


【解决方案1】:

随着 iOS 6 的发布,Apple 为他们的 Mobile Safari 和 Mac Safari 6 一起发布了远程 Web Inspector,这是巨大的。基本上,您拥有常规 Safari 中 Web Inspector 的所有功能和强大功能,适用于您的移动应用程序,包括 Phonegap 应用程序。我使用了 weinre,这使得它在较新版本的 iOS 中已经过时(但不适用于旧版本的 iOS、Android 等非 iOS 设备,或者如果您使用的是 Windows)。

它的工作原理如下(需要 Mac,运行 iOS 6+ 模拟器的 xCode 4.5+ 或 iOS 6+ 设备,以及 Mac 上的 Safari 6+):

在您的 ios 模拟器或 ios 设备中,打开设置 --> Safari --> 高级 --> Web Inspector --> (打开) 。 (这在模拟器中默认开启,但值得检查)

在 Safari 中,启动 phoneGap/cordova 应用程序并加载并运行后,从“开发”菜单访问 iPhone 模拟器或您的设备。您可以在 Safari 的“高级首选项”中启用“开发”菜单(如果尚未启用)。

更多讨论在底部: http://www.mobilexweb.com/blog/iphone-5-ios-6-html5-developers

(另外,如果您在某处读到“秘密私有接口”,这将不再有效。)

【讨论】:

  • 如何调试加载过程?当我设法打开检查器时,应用程序已经加载,因此没有机会在加载代码中设置断点。有什么想法吗?
  • @blurrcat 抱歉,我已经离开一段时间了。您所描述的是它的局限性,我以前也遇到过这个挑战。对我来说,似乎有两件事可能奏效:我能够在我的初始化代码之前添加一个 alert(),这基本上会停止执行,直到我单击 OK。或者在我调试时在我的初始化函数周围添加一个 setTimeout(...) 包装器。希望有帮助
  • 是警报()!你真是天才!
  • 如果它对任何人有帮助,我整理了一个 AppleScript,它可以自动打开 safari 调试器窗口 - 如果您更改了初始化文件名​​和/或想要运行,则必须编辑最后一行它在您的设备上:gist.github.com/dts/5771273.
【解决方案2】:

尝试使用 weinre,它是在移动设备上调试 javascript 应用程序的好工具。

http://people.apache.org/~pmuellr/weinre/docs/latest/

虽然您仍然无法像在桌面上提供的那样逐步调试脚本,但提供的细节比 xcode 多得多(~ 用于 javascript)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    相关资源
    最近更新 更多