无法找到正确调试nativescript应用程序

时间:2017-11-05 19:18:09

标签: nativescript

我无法找到适用于调试nativescript应用程序的可行解决方案。我尝试了以下选项:

a)tns调试 这将启动一个名为“Nativescript Inspector”的工具。这是非常缓慢的,并且加重了对伤害的侮辱:它比跑步更容易崩溃。我没有能够运行足够长的时间来找到基本的问题。这对我来说完全没用。

b)tns debug --chrome chrome调试器要好得多,但似乎不可能简单地重新加载。每次重新启动时,都需要重新附加一个新实例。由于此选项适用于copy&粘贴一个链接,就变得相当麻烦。此外,它并没有真正尊重断点,特别是在应用重启期间!所以最终,这也没用。

c)Sidekick 这应该是规定的调试方法之一。调试器无法启动的一半时间。如果是这样,则在应用程序启动期间无法打破流程。由于我正在调试启动期间发生的部件,我永远不会有机会设置断点,除非将引导阶段包装到计时器(这也花费时间)等技巧。所以即使这种方法也行不通。

我真的,真的需要获得Visual Studio吗?我真的很想避免......

3 个答案:

答案 0 :(得分:3)

要调试视图,目前最好的选择是使用Sidekick附带的调试器。

但是,如果要调试逻辑,最好的选择是使用VS Code的NativeScript扩展,并直接从VS Code进行调试。 :) 希望这会有所帮助。

https://marketplace.visualstudio.com/items?itemName=Telerik.nativescript

答案 1 :(得分:1)

调试在启动时执行的代码很棘手,因此您需要在代码中放置debugger语句,并使用--debug-brk启动调试会话

tns debug ios --chrome --debug-brk

有关详细信息,请查看Chrome DevTools文档中的Debugger部分 - https://docs.nativescript.org/tooling/chrome-devtools#debugger

答案 2 :(得分:0)

我从本机脚本开始,我发现调试是最大的挑战之一。

我的第一个方法是Visual Studio Code的本机脚本扩展,但它有点不稳定,Visual Studio Code缺少我在webstorm中经常使用的一些功能。

可能在不久的将来,VEC + tns扩展将是首选,但现在我的调试策略是:

1 启动模拟器

我正在使用Osx,我想在Ipad模拟器中进行调试。默认情况下,IOS模拟器启动Iphone X设备。首先,我需要使用自定义设备启动simualtor。

$ xcrun simctl list devices
== Devices ==
-- iOS 11.2 --
iPhone 5s (E3B6EA43-C805-49C2-9502-A44A465D8DF2) (Shutdown)
iPhone 6 (801E9E11-CA86-473A-9879-4B0742B827FB) (Shutdown)
iPhone 6 Plus (24013349-1A6F-489C-9A68-ABB00EBB4BBF) (Shutdown)
iPhone 6s (1A594D75-146C-4BEA-A250-1FADE7886114) (Shutdown)

然后我启动模拟器应用程序,指定具有-CurrentDeviceUDID选项的设备

/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID <DEVICE-UDID>

注意:用列表中的有效UDID替换它。

Xcode 6 - Launch simulator from command line

的更多信息

2. 使用nativescript-cli命令

获取可用设备列表

# tns devices

enter image description here

要在特定设备中进行调试:

# tns debug ios --device <device identifier>

注意:用有效的ID替换设备标识符。

如果要在模拟器中调试

# tns debug ios --emulator 

您必须在命令输出中找到url并在chrome中打开:

...
...
To start debugging, open the following URL in Chrome:
chrome-devtools://devtools/remote/serve_file/@02e6bde1bbe34e43b309d4ef774b1168d25fd024/inspector.html?experiments=true&ws=localhost:41000
....

有关重复数据删除命令的更多信息,请参阅 https://docs.nativescript.org/tooling/debugging

有关使用chrome-dev-tools进行调试的更多信息 https://docs.nativescript.org/tooling/chrome-devtools#debugger

04/20/2018更新

我在Mac OS X中开发,使用新的本机脚本cli 4.0,WebKit Web Inspector的调试体验得到了改进。所以我现在用它进行调试:

tns debug ios --inspector