无法在 iOS 模拟器中启动 Chrome DevTools

Can't launch Chrome DevTools in iOS simulator

使用v8.2模拟器,Cmd+D总是显示如下错误信息

[RCTLog][tid:0x7fcc2bf4cb90][RCTRootView.m:68]>WebSocket debugger is not available. Did you forget to include RCTWebSocketExecutor?

可能与此问题类似:

https://github.com/facebook/react-native/issues/311

这里也提到了:

https://github.com/facebook/react-native/issues/297

看起来这可能是一条糟糕的错误消息,因为 React Native 无法连接到 Chrome 调试器。第一个 link 有一个可能的修复:

In RCTWebSocketExecutor.m:
- (instancetype)init
{
return [self initWithURL:[NSURL URLWithString:@"http://localhost:8081/debugger-proxy"]];
}

This prevents remote debugging. If I manually change it to my computer's IP, I am able to debug with the Chrome inspector.

如果有效,请归功于 https://github.com/ckknight:)

在我尝试了很多不同的方法来解决这个问题后,终于找到了根本原因。

为了使用Chrome DevTool 进行调试,iOS 项目需要导入库RCTWebSocketDebugger.xcodeprojlibicucore.dylib

在react-native例子中,2048MoviesTicTacToe不导入这两个库。这就是为什么它总是在控制台中显示错误消息 "WebSocket debugger is not available. Did you forget to include RCTWebSocketExecutor?"。

  1. + > Add Other... > <REACT_NATIVE_ROOT>/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj
  2. + > 搜索 RCTWebSocketDebugger.a > Add
  3. + > 搜索 libicucore.dylib > Add
  4. 在 Xcode 中按 ⌘ + R 到 运行 项目
  5. 打开ChromeURLhttp://localhost:8081/debugger-ui
  6. 在 iOS 模拟器中按 ⌘ + D 以启用调试