在真实设备上升级livereload后,无法从真实设备远程调试js

时间:2016-07-30 17:40:49

标签: react-native

在将原生的反应从0.26更新为0.29后,开发菜单中缺少实时重新加载和热代码推送项目,因此我每次都必须手动重新加载应用程序。但是,它在模拟器中工作。升级时我搞砸了什么吗?我试图更新到0.30,但没有帮助。

此外,从真实设备进行远程调试不起作用,仅在模拟器中运行应用程序时才有效。我收到此错误: 运行时尚未准备好进行调试,但我确定打包服务器正在运行,它在断点上没有暂停。有什么想法吗?

React版本:15.2.1 守望者版本:4.5.0

谢谢:)

2 个答案:

答案 0 :(得分:10)

找出make live reload工作所需的配置:

jsCodeLocation = [NSURL URLWithString: @"http://192.168.0.200:8081/index.ios.bundle?platform=ios&dev=true"];

请注意,如果没有“?platform = ios& dev = true”,Hot Reload对我不起作用(“不平衡呼叫开始/结束”错误)。

并在RCTWebSocketExecutor.m中:

host = @"http://192.168.0.200";

192.168.0.200 - 您计算机的地址。计算机和设备都必须位于同一网络中。 之后,“shake”开发菜单中的“Live Reload”项目出现了,我也开始在服务器控制台中看到日志:  enter image description here

并且“必须和@jmancherje提到的那个网络相同”

答案 1 :(得分:0)

我认为您的jsbundle并未随实际设备一起加载,因此在存档和安装它时,必须将其用于实时构建。

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

并使用以下行从xcode安装

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

enter image description here