react-native ios“无法连接到开发服务器”和“__fbBatchedBridge 未定义”错误
Posted
技术标签:
【中文标题】react-native ios“无法连接到开发服务器”和“__fbBatchedBridge 未定义”错误【英文标题】:react-native ios "Could not connect to development server" and "__fbBatchedBridge is undefined" errors 【发布时间】:2016-06-22 03:01:56 【问题描述】:我是 react-native 的大一新生。我尝试根据官方文档部署一个“hello world”应用程序。但是失败了。
这是我的尝试:
根据官网安装所有依赖 使用命令react-native init HelloWorld
初始化我的本地项目(起初我的项目名称是try
,但它是保留关键字,所以我改为HelloWorld
)
使用npm install
安装所有node_modues
尝试使用命令react-native run-ios
运行我的项目
我的环境是:
osx10.10.5
守望者4.5
xcode7.2.1
react-native-cli 1.0.0
反应原生0.28.0
反应15.1.0
运行命令react-native run-ios
后,我得到这个红色背景错误:
无法连接到开发服务器。
请执行以下操作:
节点服务器正在运行并且在同一网络上可用 - 从 react-native root 运行“npm start” 在 AppDelegate 中正确设置了节点服务器 URL网址:http://localhost:8081/index.ios.bundle?platform-ios&dev=true
我搜索了谷歌,发现这是一个常见的问题,主要是由于 osx 9.0 的安全策略。
我阅读了github issue: cound not connect to development server 并检查并修改了我的项目:
确保Info.plist
中的NSAppTransportSecurity
设置正常。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
尝试将AppDelegate.m
中的jsCodeLocation
从localhost
更改为my local network ip
(实际上我可以在我的chrome浏览器中访问jsCodeLocation[localhost],但是我根据github问题更改了我的ip不管怎样,试试吧)
当我重试命令“react-native run-ios”时,连接错误消失了,但出现另一个错误“__fbBatchedBridge is undefined”
无法执行 JS 调用:__fbBatchedBridge 未定义
RCTF致命 + 104 ...
我阅读了 github 问题:github->facebook/react-native/issues/6282
,并尝试注释掉以下行 github->facebook/react-native/blob/master/packager/react-native-xcode.sh#L15-L18
# if [[ "$PLATFORM_NAME" = "iphonesimulator" ]]; then
# echo "Skipping bundling for Simulator platform"
# exit 0;
# fi
但是什么也没发生。有人可以帮忙吗?谢谢。
【问题讨论】:
您是否尝试过直接从 XCode 运行您的应用程序? 是的,我试过了,但结果和命令“react-native run-ios”一样 你是想在设备还是模拟器上运行它? 模拟器9.2和真机9.2.1都有问题,今晚我试试更多模拟器 【参考方案1】:您选择的项目名称try
是javascript 中的保留字。这将导致从一开始就出现问题。例如它会生成一个类名try
,如下:
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, Component from 'react';
import
AppRegistry,
StyleSheet,
Text,
View
from 'react-native';
class try extends Component
render()
return (
<View style=styles.container>
<Text style=styles.welcome>
Welcome to React Native!
</Text>
<Text style=styles.instructions>
To get started, edit index.ios.js
</Text>
<Text style=styles.instructions>
Press Cmd+R to reload,'\n'
Cmd+D or shake for dev menu
</Text>
</View>
);
这将导致错误和不可预测性。尝试使用 MyApp
之类的东西生成一个新的 react native 应用程序,然后再试一次。
【讨论】:
谢谢你的回答,你很细心,我一开始就遇到这个问题,但后来我自己解决了(我是前端工程师)。所以,不是这个原因。【参考方案2】:我已经解决了这个问题。
原因很简单,很傻,
只需在hosts中添加localhost 127.0.0.1
,问题就会消失。
【讨论】:
以上是关于react-native ios“无法连接到开发服务器”和“__fbBatchedBridge 未定义”错误的主要内容,如果未能解决你的问题,请参考以下文章
React-native:如何从 Windows 构建 ios
React-Native入门指导之iOS篇 —— 一准备工作
react-native android/ios 手动/自动 修改版本号