【问题标题】:Workflow for debugging PhoneGap using Safari's Web Inspector使用 Safari 的 Web Inspector 调试 PhoneGap 的工作流程
【发布时间】:2013-12-08 01:50:54
【问题描述】:

我正在开发一个电话间隙应用程序和using Safari's Web Inspector to debug it。该工具非常有用,但有一些工作流程效率低下,这让我花费了一些时间。

  1. 每次我在 xCode 中停止 PhoneGap 应用程序时,Safari Web Inspector 窗口都会自动关闭,让我每次进行更改并重新启动应用程序时都需要重新打开它。

  2. 我能够在控制台中获得完整读数的唯一方法是输入 window.location.reload()。每次我在 xCode 中部署更改时,这都会再次为我的工作流程增加一个步骤。

有谁知道如何设置它以使 Safari Web Inspector 保持打开状态并且控制台自动监控应用程序?

【问题讨论】:

    标签: iphone xcode cordova workflow safari-web-inspector


    【解决方案1】:

    为了解决重新加载问题,我在调试时将其添加到我的 head 部分:

    <script>
      alert('connect your debugger, if you want')
    </script>
    

    警报会停止所有执行,这意味着我可以(手动,呃)连接我的调试器而不会错过任何东西。当我在警报窗口上点击 OK 时,执行恢复。

    【讨论】:

    • 你肯定知道 JS 是如何工作的。非常聪明的举动!感谢分享。
    【解决方案2】:

    我也有同样的问题。我还没有解决它们,而且我的时间不多了,所以我将向您展示我目前所获得的:

    创建一个可打开 Web 检查器的 ActionScript:

    https://gist.github.com/amuino/5649177 这行得通!

    让 Xcode 启动它!我尝试创建一个 shell 脚本,然后打开操作脚本,但无济于事。这就是我所拥有的:

    How to run a script after Xcode runs codesign on my iPhone app?

    【讨论】:

    • 构建后无法运行,有什么想法吗?只要我通过终端执行脚本就可以工作..
    【解决方案3】:

    其实我找到了解决这个问题的方法。它不是超级优雅,但它确实有效。

    在我的应用程序的入口点,我使用 setTimeout 添加了一些延迟,如下所示:

    setTimeout(function () {
        app.init();
    }, 10000);
    

    这将为您提供足够的时间(10 秒)来重新打开 Safari Web Inspector,您将获得完整的控制台读数。

    这让我省了很多麻烦。

    【讨论】: