React-Native 远程调试器无法在 iPhone 上运行

Posted

技术标签:

【中文标题】React-Native 远程调试器无法在 iPhone 上运行【英文标题】:React-Native Remote Debugger not working on iPhone 【发布时间】:2016-11-23 19:38:36 【问题描述】:

我在我的 iPhone 上运行一个 React-Native 应用程序,该应用程序似乎可以正常加载,但是当我摇动并启用远程 JS 调试时,我收到此错误:

我尝试关注 React-Native 的文档 https://facebook.github.io/react-native/docs/running-on-device-ios.html,但它似乎已经过时了。

AppDelegate.m

#import "AppDelegate.h"
#import "RCTBundleURLProvider.h"
#import "RCTRootView.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

  NSURL *jsCodeLocation;

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


  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"abcrn123"
                                           initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f     green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen     mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;


@end

任何帮助将不胜感激,我正在尝试在真实设备上运行和调试 React-Native 应用程序。

谢谢,道格。

【问题讨论】:

【参考方案1】:

有时会超时。我通常用这个步骤。 1、摇一摇,停止远程调试。 2.让它运行。 3、再次摇一摇,返回远程调试。 4. 应该重新加载。你应该很高兴。

我知道这很烦人......

【讨论】:

【参考方案2】:

我今天克服了这个困难。这是使用React Native Debugger 的流程:

    清除所有缓存以重新开始:watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf node_modules/ && npm cache clean -force && npm install,按照:https://gist.github.com/jarretmoses/c2e4786fd342b3444f3bc6beff32098d $ REACT_DEBUGGER="open -g 'rndebugger://set-debugger-loc?port=8081' ||" react-native start (现在打包程序正在运行 - 切换终端窗口) $ react-native run-ios --device "iPad" (或任何您的设备名称) 在绿色状态栏中记下 iPad 或加载期间列出的 IP 地址 从你的设备中甩掉垃圾,然后在弹出窗口中选择“启用远程 JS 调试” $ open "rndebugger://set-debugger-loc?host=192.168.1.231&port=8081" ip address == 绿色状态栏中列出的地址(不是 iPad wifi 设置中的地址)...

【讨论】:

【参考方案3】:

我不再试图让它发挥作用, 只是

    npm install -g localtunnel lt --port 8081 复制此命令输出的 url,并将其放置到您的 AppDelegate.m 中,如下所示 return [NSURL URLWithString:@"https://blue-termites-13.localtunnel.me/index.bundle?platform=ios&dev=true"];

【讨论】:

以上是关于React-Native 远程调试器无法在 iPhone 上运行的主要内容,如果未能解决你的问题,请参考以下文章

Android Emulator 无法连接到 React-Native 远程调试器 - 连接时超时

启用远程调试 JS 后,无法在 React-Native 应用程序上向 API 发出请求

如何在 React-Native 中禁用远程 JS 调试

如何将 firefox 设置为 React-Native 的默认远程 JS 调试器?

不远程调试时,React-Native 的反应不同

React-native 无法打开 ios 模拟器调试菜单