我运行 react-native run-ios命令和我的应用程序显示3秒之前显示这一点。我运行在 ios 模拟器
react-native run-ios
Js: 76连接到 超时 http://localhost:8081/debugger-proxy?role=client 运行节点代理? 如果您在设备上运行,请检查是否 在 RCTWebSocketExecutor.m中有正确的 IP 地址。
RCTWebSocketExecutor.m
不知怎么的,我删除了 iOS 主屏上模拟器中的项目应用程序,让它在不创建新项目的情况下工作。现在好了。
这似乎正在发生在我身上,因为我已经重新启动了本地反应程序包,而我仍然有一个 Chrome 调试器打开,这是附加到以前的包装器/模拟器实例。
关闭调试器 Chrome 标签并再次尝试 run-ios似乎解决了这个问题,没有任何重启或其他的欺骗。
run-ios
我经常遇到这种情况。通常,当我使用远程调试器进行开发时,我会保存解码类型的错误。
试着重新装弹... 如果这还不能解决问题的话: 然后停止远程调试,然后刷新。这将修复它,但现在您失去了您的调试器。再来一次。 Crlt + cmd + z。这次开始远程调试,然后再次刷新。你的项目应该可以回来了。
这对我来说很有用,但是它超级烦人和耗时。我希望有人有更好的方法。
对于远程调试,您的两个设备必须连接到同一个 wifi (网络)。
路由器可能出现问题。请尝试通过 iPhone 热点连接到 wifi。
在 github 上,我找到了一个解决方案,如何在你的 Mac 和 iPhone 上设置 DNS 来解决这个错误:
这也发生在我身上。我不知怎么用重启修好了... 想想看。我猜想 Metro Bundler 无法发射,因为端口8081已经被另一个进程占用。重新启动后,我再次运行 react-native run-ios,这次模拟器正确启动,没有出现错误。
提醒你一下,这是在一个全新的项目中发生在我身上的。
对我来说,我用的是不同的网络,而不是手机。没有 SIM 卡要求,我只需要确保我是在同一个网络(我们有工作和客人网络在这里)。在 RN 的文档中有一些注释,你可以签出(中间有一个粉红色的框,代理问题我们都遇到过) :
Http://facebook.github.io/react-native/docs/running-on-device.html
我在 iOS 上面临着同样的问题。
下面的技巧对我很有效:
disable
OS_ACTIVITY_MODE
希望这能帮到别人。
在发布版本构建后,我忘记切换回使用索引文件而不是 jsbundle 时,出现了这个错误。
是的
JsCodeLocation = [[ NSBundlemainBundle ] URLForResource:@“ main”withExtension:@“ jsbundle”] ;
而不是
JsCodeLocation = [[[ RCTBundleURLProvider sharedSettings ] jsBundleURLForBundleRoot:@“ index”falbackResource: nil ] ;
切换到索引文件并再次构建,它工作了。
我做了很多尝试,最后通过将 NSAllowsArbitraryLoads添加到 info.plist 来修复它。
NSAllowsArbitraryLoads
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict>
我得到了同样的错误,虽然它是一样的网络。
从你的设备中删除应用程序并重新构建它。将工作。
我固定添加一个脚本在“捆绑反应本地代码和图像”构建阶段标签的主要目标。我只是简单地添加了 export DISABLE_XIP=NOTHANKS
export DISABLE_XIP=NOTHANKS
问题是真正的设备试图连接到我在 xip.io 域下的 IP
我认为在 xCode 项目中添加自定义映像资产时,这个脚本是必要的,但是您可以在 Report 导航器选项卡中检查 ip 的 URL 是否错误。
我的装置 反应: 16.3.1, 本地反应: 2.0 原生反应: 0.55.4 XCode 9.4.1
反应: 16.3.1, 本地反应: 2.0 原生反应: 0.55.4 XCode 9.4.1
这里是原始的关于 xip.io 的本地反应文档(疑难解答章节) Https://facebook.github.io/react-native/docs/running-on-device
这里禁用 XIP 的可能性。 Https://github.com/facebook/metro/commit/079dcaed990abb6754c03113362e4f537cd32a24
这里是我找到的试用这个解决方案的提示 Https://github.com/facebook/react-native/issues/12786
#if DEBUG jsCodeLocation = [NSURL URLWithString:@"http://192.168.11.21:8081/index.bundle?platform=ios&dev=true"]; #else #warning "PRODUCTION DEVICE" jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; #endif
你可以从这个链接找到你的 IP 地址 Https://kb.wisc.edu/page.php?id=6526
对我来说,这发生在我试图调试一个真正的设备时。问题是我的电脑和我真正的设备不在同一个 WiFi 上。
对我来说,这很有效:
ctrl+t
React Native pakager port
ctrl+M
可以出发了!
如果你得到:
已连接另一个调试器
这听起来可能有点傻,但是别忘了检查一下后台的 Chrome 窗口,它可能是“另一个调试器”。
当你点击“开始 JS 调试”,反应本机打开一个新的 Chrome 窗口与调试器。如果你在 Mac OS X 上打开了多个 Chrome 窗口(不是标签) ,你不会看到任何视觉上的迹象表明有不止一个窗口,所以你可能正在看前台窗口,“另一个调试器已经连接”,并没有意识到另一个调试器是在后台的 Chrome 窗口。
这发生在我身上是因为我通过一个有 俘虏传送门的 WiFi 网络连接(也就是一个弹出窗口,需要你在连接到互联网之前填写一些信息)。
请确保您是通过无线网络连接,没有俘虏门户。 甚至你手机上的个人热点也会起作用!
下面是我从未读过的参考文献,花了我不少时间:
如果您有任何问题,请确保您的 Mac 和设备在同一个网络上,并且可以互相联系。许多带有专用门户的开放无线网络配置为防止设备到达网络上的其他设备。在这种情况下,您可以使用您的设备的个人热点功能。
Https://facebook.github.io/react-native/docs/running-on-device#troubleshooting
对我来说,上述方法似乎都不管用。我尝试关闭连接,重新加载包,停止并运行 npm 重新启动,但是没有成功。 对我来说,最终起作用的是在重新启动之前清除 npm 缓存:
npm start --clear-cache
在此之后,我重新加载了包,并且正确地附加了调试器。
从模拟器或真正的设备删除应用程序和重建项目。这为我工作。
正在处理 Mac。 我通过启用“互联网共享”解决了这个问题。 - 进入设定-> 分享 - 透过「 USB 10/100/1000局域网」共用你的连线 - 电脑使用: “ Wi-fi” - 检查“互联网共享”-> 创建你的网络 在你的 iPhone 连接到新的网络 - 重新装填地铁和 xcode
这是发生在我身上的事情,我正在用我的手机为模拟器进行开发。我不得不摇晃我的实际手机,并按下远程调试选项,这加载了一个新的 http://localhost:19001/debugger-ui/页面在我的浏览器与活动调试器。
IOS14的更新:
(图片来自 https://www.iphonetricks.org/ios-14-local-network-privacy-feature/)
在 iOS14上,当你第一次启动你的应用时,iOS 会请求你允许扫描本地网络。您需要允许否则应用程序将无法连接到您的 Mac 上的远程调试器。
/etc/hosts
127.0.0.1 localhost ::1 localhost
如果没有,加上他们,然后 yarn ios再次。 如果他们真的存在,对不起,我也无能为力
yarn ios
只是想提一下,当你通过 RN 在 iOS 上安装一个新的应用程序时,你的设备会问你一些关于如何连接 WiFi 等设备的问题。我一定是点错了东西,陷入了那种状态。删除我的设备上的应用程序,然后重新安装(通过 RN)带来的对话框,我可以接受它。
我注释了/private/etc/hosts 中的所有行,以解决一些 VPN 问题,但是对于 IOS 响应本机调试器来说,似乎需要附加这些主机条目:
127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost
在我的情况下,我的 IP 地址改变了,我指向我的 iphone 的旧 IP 地址。
2022年更新:
我试图在一个物理设备中运行。
podfile.lock
pod deintegrate
然后一切都很顺利。
我是在测试离子模拟器