调试用 Visual Studio Tools for Apache Cordova 生成的应用

这篇文章介绍了用于 Apache Cordova 的 Visual Studio 工具,是一个预发布的软件。所述功能呈现在预览版中,并可能会发生更改。你可以从 Microsoft 下载中心下载预览版。

使用 Visual Studio 开发 Cordova 应用时,无论应用是何种类型、针对何种设备平台,开发者都能拥有无缝且通用的工具体验。 但在此早期发行版中,不是所有设备平台都支持所有 Visual Studio 调试器和诊断功能的,如下表所示。

设备或操作系统

是否支持 Visual Studio 调试器?

是否支持控制台消息?

解决方法

Android 4.4

-

Android 2.3.3 至 4.3 版本

否(请参见本文后面的关于 jsHybugger 的信息)

-

iOS 6、7、8

-

Windows 8、 8.1(应用商店)

-

Windows Phone 8、8.1

No

不是(使用控制台插件)

使用 Web Inspector Remote (weinre) 或控制台插件。 请参见本文后面的调试 Windows 8 与 Windows Phone 8。

Windows Server 2012 R2

若要在 Windows Server 2012 R2 上运行应用,你必须启用“桌面体验”选项。

备注

如果你正在使用 Windows 7,那么你可以为 Android 和 iOS 开发应用,但不能为 Windows 或 Windows Phone 开发应用。

本文内容:

  • 在 Apache Ripple 中调试 Android 和 iOS

  • 在仿真器或设备上调试 Android

  • 在仿真器或设备上调试 iOS

  • 调试 Windows 8 和 Windows Phone 8

在 Apache Ripple 中调试 Android 和 iOS

你可以将 Visual Studio 调试器连接到正在 Apache Ripple 仿真器中运行的应用上。

若要在 Ripple 中进行调试

  • 当你的应用在 Visual Studio 中打开时,按下 F5。

    你可以命中在你的代码中设置的断点,使用 DOM 资源管理器,或查看发送到 JavaScript 控制台的消息。

    以下插图展示了一个在代码编辑器中设置的断点。

    设置使用 Ripple 调试时的断点

    在此处,Visual Studio 调试器在 Ripple 仿真器中进行调试时命中了一个断点。

    由 Visual Studio 调试器捕获的断点

重要

对于在 Ripple 中加载第一个页面之前命中的断点,Visual Studio 在遇到这些断点时不会停止。但在你刷新浏览器之后,调试器在遇到这些断点时就会停止。

目前 Ripple 支持以下 JavaScript 控制台命令

  • console.assert
    console.clear
    console.count
    console.debug
    console.dir
    console.dirxml
    console.error
    console.info
    console.log
    console.time
    console.timeEnd
    console.warn

备注

JavaScript 控制台的其他控制台命令或杂项命令当前都不受支持。console.dirxml 与基于 Webkit 的浏览器上的 console.dir 具有相同的行为。

DOM 资源管理器启用了 HTML 和 CSS 的调试。 Ripple 上支持 DOM 资源管理器中“样式”、“已计算”和“布局”选项卡中可用的功能。

备注

有关调试支持的详细信息,请参阅已知问题

在仿真器或设备上调试 Android

你可以将 Visual Studio 调试器连接到 Android 仿真器或 Android 设备上以在 Android 4.4 上调试你的应用。

如果你正在使用 Android 2.3.3 和 4.3 之间的版本,你可以安装 jsHybugger 插件来启用 Android 诊断(DOM 资源管理器、控制台和调试)。 该插件会在本地检测你的代码以启用 Android 设备和仿真器上的远程调试,并支持 Android 2.3.3 及更高版本。

若要在 Android 4.4 上进行调试

  • 当你的应用在 Visual Studio 中打开时,按下 F5。

    如果你正在使用 Android 4.4,你可以命中在你的代码中设置的断点,查看发送到 JavaScript 控制台的消息并使用 DOM 资源管理器。

    重要

    对于在 Android 4.4 仿真器或 Android 设备中加载第一个页面之前命中的断点,Visual Studio 在遇到这些断点时不会停止。但在你执行了以下来自 JavaScript 控制台的命令后,调试器在遇到这些断点时就会停止:window.location.reload()

若要使用 jsHybugger 插件在 Android 2.3.3-4.3 版本上进行调试

  1. 在 Visual Studio 中打开 Cordova 项目。

  2. 在你的项目中创建“插件”文件夹,如果已存在则无需创建。 (若要添加文件夹,请在解决方案资源管理器中打开你项目的快捷菜单,依次选择“添加”和“新文件夹”,然后将文件夹命名为“插件”。)

  3. 下载 jsHybugger 插件并解压缩其内容。

    备注

    有关此插件的详细信息,请参阅 jsHybugger 网站。没有许可证也可以使用插件,但调试会话最多持续两分钟。若要进行无限制的调试,你必须购买一个 jshybugger 许可证。以下指示假设你已经购买了一个许可证并下载了许可证文件 jshybugger_license.xml。

  4. 将未解压的 jshybugger-plugin-x.x.x 文件夹放到你项目的“插件”文件夹中。

  5. 将 jshybugger_license.xml 文件放到你项目的根目录中。

    你的项目在解决方案资源管理器中会是这个样子。

    安装 jsHybugger 后的项目结构

  6. 按下 F5 以开始针对 Android 仿真器或设备进行调试。

    你可以查看发送到 JavaScript 控制台的消息,并使用 DOM 资源管理器。

重要

在你发布应用之前,你必须将 jsHybugger 插件和许可证文件从你的项目中删除。

在你使用 Apache Ripple 仿真器或在 Android 4.4 仿真器和设备上进行调试时,插件是不起作用的,所以当你在测试过程中在不同的 Android 目标之间进行切换时不需要删除该插件。

目前 Android 支持以下 JavaScript 控制台命令

  • console.assert
    console.clear
    console.count
    console.debug
    console.dir
    console.dirxml
    console.error
    console.info
    console.log
    console.time
    console.timeEnd
    console.warn

备注

JavaScript 控制台的其他控制台命令或杂项命令当前都不受支持。console.dirxml 与基于 Webkit 的浏览器上的 console.dir 具有相同的行为。

Android 上支持 DOM 资源管理器中“样式”、“已计算”和“布局”选项卡中可用的功能。

警告

其他可用于 Windows 的调试和诊断工具目前不可用于 Android。我们将在随后的发行版中继续改进 Android 调试支持。有关调试支持的详细信息,请参阅已知问题

在仿真器或设备上调试 iOS

你可以把 Visual Studio 调试器连接到 iOS 仿真器或 iOS 设备上。 支持 iOS 6、7 和 8。

备注

目前,不支持将调试器连接到使用 InAppBrowser 插件的 iOS 应用。Azure 移动服务插件使用 InAppBrowser 插件而且受这种限制的影响。

在 iOS 中调试

  • 确保你已经在你的 Mac 上安装了 vs-mda-remote 代理,启动代理并配置 Visual Studio 以连接到代理。

  • 如果你正在实际设备上调试,请转到你的设备并选择设置Safari高级,然后启用 Web Inspector。

    这允许在你的设备上远程调试。s (这一步不需要在 iOS 模拟器上调试)。

  • 要在 Visual Studio 中打开你的应用程序并把 iOS 选择为部署目标,请按 F5。

    你可以命中在你的代码中设置断点,查看发送到 JavaScript 控制台的消息并使用 DOM 资源管理器。

    重要

    对于在 iOS 模拟器或 iOS 设备中加载第一个页面之前命中的断点,Visual Studio 在遇到这些断点时不会停止。但在你执行了以下来自 JavaScript 控制台的命令后,调试器在遇到这些断点时就会停止:window.location.reload()

目前 iOS 支持以下 JavaScript 控制台命令

  • console.assert
    console.clear
    console.count
    console.debug
    console.dir
    console.dirxml
    console.error
    console.info
    console.log
    console.time
    console.timeEnd
    console.warn

备注

JavaScript 控制台的其他控制台命令或杂项命令当前都不受支持。console.dirxml 与基于 Webkit 的浏览器上的 console.dir 具有相同的行为。

iOS 支持 DOM 资源管理器“样式”、**“已计算”“布局”**选项卡中可用的功能。

警告

我们将在随后的发行版中继续改进调试支持。有关调试支持的详细信息,请参阅已知问题

调试 Windows 8 和 Windows Phone 8

对于 Windows 应用和任何使用 HTML 和 JavaScript 所创建的 Windows 应用商店应用,这两者适用同样的 Visual Studio 调试工具。 有关详信息,请参阅 Windows 开发人员中心中的在 Visual Studio 中调试应用商店应用

对于 Windows Phone 应用,此早期发行版不支持连接 Visual Studio 调试器。 不过你可以使用 Web Inspector Remote (weinre),在一篇 Microsoft 开放技术博客帖中对此有叙述。

提示

适用于 Apache Cordova 的 Visual Studio 工具的下一个版本将支持把 Visual Studio 调试器连接到 Windows Phone 8.1 项目。

若要进行 Windows Phone 调试,除了使用 weinre,另一种方法是将控制台插件添加到你的应用,创建你的应用,然后在 Visual Studio 中打开生成的本机 Windows Phone 8 项目。 可以在 \bld\Debug\platforms\wp8 文件夹下找到本机项目。 打开本机项目后,你可以使用“输出”窗口来查看控制台输出。 有关访问本机项目的详细信息,请参阅访问一个本机 Cordova 项目

警告

你对本机项目作出的更改会在你重建 Cordova 应用时被覆盖。

请参见

概念

Visual Studio Tools for Apache Cordova 入门

其他资源

FAQ

已知问题