React-Native Remote Debugger无法在iPhone上运行

时间:2016-07-20 14:01:11

标签: ios objective-c xcode reactjs react-native

我在我的iPhone上运行React-Native应用程序,该应用似乎加载正常但是当我摇动并启用Remote JS Debugging时出现此错误:

enter image description here

我已经尝试过关注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应用程序。

谢谢,道格。

3 个答案:

答案 0 :(得分:1)

有时会超时。我通常用这个步骤。 1.摇动它,然后停止远程调试。 让它运行。 3.再次摇动它并转回远程调试。 4.应该重新加载。你应该好好去。

我知道这很烦人。

答案 1 :(得分:0)

今天我对此进行了一些争论。这是使用React Native Debugger

的流程
  1. 清除所有缓存以通过以下方式重新开始:watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf node_modules/ && npm cache clean -force && npm install,根据:https://gist.github.com/jarretmoses/c2e4786fd342b3444f3bc6beff32098d
  2. $ REACT_DEBUGGER="open -g 'rndebugger://set-debugger-loc?port=8081' ||" react-native start
    (现在打包运行 - 切换终端窗口)
  3. $ react-native run-ios --device "iPad" (或任何设备的名称)
  4. 记下iPad上列出的IP地址或绿色状态栏中的加载时间内的任何内容
  5. 从您的设备中摇出垃圾,然后选择"启用远程JS调试"在弹出窗口
  6. $ open "rndebugger://set-debugger-loc?host=192.168.1.231&port=8081"
    IP地址==绿色状态栏中列出的地址(不是iPad的地址设置)...

答案 2 :(得分:0)

我放弃了让它工作的尝试, 只是

  1. npm install -g localtunnel
  2. lt --port 8081
  3. 复制此命令输出的网址,然后将其放置到您的AppDelegate.mreturn [NSURL URLWithString:@"https://blue-termites-13.localtunnel.me/index.bundle?platform=ios&dev=true"];