React-Native:如何在真正的iOS设备上使用“Remote JS Debugger”?

时间:2018-03-30 15:38:04

标签: ios react-native

我想知道本机的远程调试器模式是否也可以在真实设备上实现。但它阻止了我的错误页面陈述

  

“正在连接http://localhost:8081/debugger-proxy?role=client   出“

这里有趣的事实是,这个URL在我的开发者机器上也不会起作用。

在我的开发者计算机上的浏览器中打开此URL(http://localhost:8081/debugger-proxy?role=client并运行packager.js将回复:

  

无法GET / debugger-proxy?role = client

当我关闭远程调试器时,一切都按预期工作。

重现的步骤:

  1. react-native init testapp
  2. cd testapp / ios
  3. 使用XCode打开.xcodeproj文件
  4. 选择我已连接的iPhone作为目标设备
  5. 运行应用程序
  6. 应用程序将从我的本地计算机获取源代码。为了使这项工作,iPhone设备和我的iMac都连接到同一个WiFi。

    enter image description here

    ReactNative-Application按预期在iPhone上执行。通过摇动手势,我生成了开发人员菜单并选择了“远程调试JS”选项。

    enter image description here

    现在出现上述错误。

    按照running-on-real device中的旁注,我在RCTWebSocketExecutor.m中将主机从localhost更改为我的Mac的IP地址,但这会在获取时导致内部循环。

    问题是:

    如何在真实设备上使用远程JS调试 -Feature?

    enter image description here

    更新

    经过进一步调查后,我得出的结论是,这可能是一个错误,并在GitHub上打开了以下issue

3 个答案:

答案 0 :(得分:3)

在Chrome浏览器中,我已更改

  

本地主机:19001 /调试器的用户界面

  

192.168.0.4:19001/debugger-ui

它有效。用您的IP地址替换192.168.0.4。

答案 1 :(得分:1)

在iOS设备上,从react-native/Libraries/WebSocket/RCTWebSocketExecutor.m打开文件RCTWebSocketExecutor.m,将“ localhost”更改为计算机的IP地址,(don't forget the correct port. eg: 192.168.1.6::8880),然后从开发人员菜单中选择“远程调试JS”。 / p>

  

注意:从您的设备中删除该应用,然后关闭打开的终端   用于创建bundle.js。最后按一下Xcode中的“播放”按钮。

这是来自本机网站的official guide

答案 2 :(得分:0)

我们在2020年在这里遇到了类似的问题,现在有一个更好的解决方案,它是直接从应用程序更新目标计算机的IP。即使计算机和设备都通过USB连接,也要与计算机和设备保持在同一WiFi上。

  1. 摇动手机以获取菜单
  2. 选择配置捆绑器
  3. 插入计算机的IP
  4. 应用更改

现在您应该在计算机上获取调试数据。